Ошибка памяти с типом L"" в Win32

Вот код для моего метода рисования в моем проекте 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()Звони в окно загружается нормально

1 ответ

Ну, я нашел проблему, хотя я не очень понимаю, почему решение работает. Я только что изменился

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

в

_tcscat_s(greeting, 100, LoadedFile);
Другие вопросы по тегам