В своей функции для копирования текста я делаю следующее:
// Allocate a global memory object for the text.
hglbCopy = GlobalAlloc(GMEM_MOVEABLE,
((text.length() + 1) * sizeof(WCHAR)));
if (hglbCopy == NULL)
{
CloseClipboard();
return;
}
// Lock the handle and copy the text to the buffer.
lptstrCopy = (LPWSTR)GlobalLock(hglbCopy);
memcpy(lptstrCopy, text.c_str(),
(text.length() + 1) * sizeof(WCHAR) );
lptstrCopy[(text.length() + 1) * sizeof(WCHAR)] = (WCHAR) 0; // null character CRASHES HERE
GlobalUnlock(hglbCopy);
Когда я копирую большой кусок текста, происходит сбой при назначении нулевого терминатора.Что-то не так с моей математикой в расчете, сколько памяти выделить?
Спасибо