gpt4 book ai didi

c++ - 将 unicode 字符串复制到剪贴板不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 14:53:08 25 4
gpt4 key购买 nike

我不知道为什么这段代码不能正常工作:

#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);
}

最佳答案

更改此部分:

hClipboardData = GlobalAlloc(GMEM_DDESHARE, sizeof(WCHAR) * (wcslen(strData) + 1));

WCHAR* pchData;
pchData = (WCHAR*)GlobalLock(hClipboardData);
wcscpy(pchData, strData);
GlobalUnlock(hClipboardData);
SetClipboardData(CF_UNICODETEXT, hClipboardData);

WCHAR 分配 2* 个字节。使用 WCHAR 而不是 char。代替 strcpy,使用 wcscpy。使用 CF_UNICODETEXT 而不是 CF_TEXT

关于c++ - 将 unicode 字符串复制到剪贴板不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40664890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com