파일에서 가져온 LPBYTE 배열이 있고 LPTSRT로 복사해야합니다 (사실 클립 보드에 복사해야합니다). 문제는 복사 작업이지만 불안정합니다. 언젠가 예외가 발생했습니다 (항상 그런 것은 아닙니다). 이유를 이해하지 못합니다. 코드는 다음과 같습니다.LPBYTE를 LPTSTR (클립 보드)로 복사하는 중 memcpy에서 예외가 발생하는 이유는 무엇입니까?
FILE *fConnect = _wfopen(connectFilePath, _T("rb"));
if (!fConnect)
return;
fseek(fConnect, 0, SEEK_END);
lSize = ftell(fConnect);
rewind(fConnect);
LPBYTE lpByte = (LPBYTE) malloc(lSize);
fread(lpByte, 1, lSize, fConnect);
lpByte[lSize] = 0;
fclose(fConnect);
//Copy into clipboard
BOOL openRes = OpenClipboard(NULL);
if (!openRes)
return;
DWORD err = GetLastError();
EmptyClipboard();
HGLOBAL hText;
hText = GlobalAlloc(GMEM_MOVEABLE, (lSize+ sizeof(TCHAR)));
LPTSTR sMem = (TCHAR*)GlobalLock(hText);
memcpy(sMem, lpByte, (lSize + sizeof(TCHAR)));
마지막 문자열은 예외가 발생하는 장소입니다. 고마워요
예, 제대로 작동합니다. – mimic