Ошибка памяти с типом 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);