BPL*_*BPL 2 c++ unicode clipboard winapi ollydbg
我不知道为什么这段代码不能正常工作:
#define UNICODE
#include <iostream>
#include <sstream>
#include <windows.h>
void main(void)
{
wchar_t* strData = L"CreateWindowExA";
MessageBox(NULL, strData, L"Warning", MB_OK);
if (OpenClipboard(0)) {
EmptyClipboard();
HGLOBAL hClipboardData;
hClipboardData = GlobalAlloc(GMEM_DDESHARE,
wcslen(strData) + 1);
char* pchData;
pchData = (char*)GlobalLock(hClipboardData);
strcpy(pchData, LPCSTR(strData));
GlobalUnlock(hClipboardData);
SetClipboardData(CF_TEXT, hClipboardData);
CloseClipboard();
}
MessageBox(NULL, L"Copied to Clipboard", L"Title", MB_OK);
}
Run Code Online (Sandbox Code Playgroud)
更改此部分:
hClipboardData = GlobalAlloc(GMEM_DDESHARE, sizeof(WCHAR) * (wcslen(strData) + 1));
WCHAR* pchData;
pchData = (WCHAR*)GlobalLock(hClipboardData);
wcscpy(pchData, strData);
GlobalUnlock(hClipboardData);
SetClipboardData(CF_UNICODETEXT, hClipboardData);
Run Code Online (Sandbox Code Playgroud)
为 分配2*字节数WCHAR。而不是char,使用WCHAR。而不是strcpy,使用wcscpy。而不是CF_TEXT,使用CF_UNICODETEXT。
| 归档时间: |
|
| 查看次数: |
2427 次 |
| 最近记录: |