0

这是我在 Win32 项目中绘制方法的代码:

case WM_PAINT:
    _tcscat_s(greeting, sizeof(greeting), LoadedFile);
    hdc = BeginPaint(hWnd, &ps);

    TextOut(hdc,  
        5, 5,  
        greeting, _tcslen(greeting));

    EndPaint(hWnd, &ps);
    break;

我一直收到错误,即围绕着问候或围绕ps的堆栈已损坏。需要明确的是,问候语的初始化如下:

TCHAR greeting[100] = _T("Welcome! Your file is ");

LoadedFile像这样初始化:

TCHAR LoadedFile[100];
LoadedFile[0] = 0;

LoadedFile还没有被任何改变,所以它不应该添加任何东西到greeting. 我试过像

sizeof(greeting) + 1

这只是改变了错误。不知道这里有什么问题。

编辑:没有_tcscat_s(), 调用窗口正常加载

4

1 回答 1

0

好吧,我发现了问题所在,尽管我并不真正理解该解决方案为何有效。我刚变

 _tcscat_s(greeting, sizeof(greeting), LoadedFile);

_tcscat_s(greeting, 100, LoadedFile);
于 2017-04-27T05:24:18.563 回答