2

知道为什么我的代码片段"Buffer is too small"在使用 strcpy_s 时抛出异常,但如果我使用 strcpy 或 CopyMemory 没有问题?

WindowClass(LPCTSTR pszClassName, WNDPROC pfnWndProc) : m_pszClassName(0)
{
    ...

    if( RegisterClass(&wc) )
    {
        size_t cbClassName = strlen(pszClassName);
        m_pszClassName = (LPTSTR)LocalAlloc(LPTR, cbClassName + 1);

        if( m_pszClassName )
        {
            //strcpy(m_pszClassName, pszClassName);
            strcpy_s(m_pszClassName, cbClassName, pszClassName);
            //CopyMemory(m_pszClassName, pszClassName, cbClassName);
        }
        else
        {
            UnregisterClass(pszClassName, hinst);
        }
    }
}

目标是没有 UNICODE 的 VS2012 上的 Win7x64。

4

0 回答 0