L33*_*EAN 0 c++ clipboard winapi
我试图让我的应用程序将字符数组复制到剪贴板,以便它可以粘贴到IE地址栏中.我遇到了解决这个问题的问题.这是我正在使用的代码:
HGLOBAL glob = GlobalAlloc(GMEM_FIXED,32);
memcpy(glob,array,sizeof(array));
OpenClipboard(hDlg);
EmptyClipboard();
SetClipboardData(CF_UNICODETEXT,glob);
CloseClipboard();
Run Code Online (Sandbox Code Playgroud)
数组声明为:
char array[500];
Run Code Online (Sandbox Code Playgroud)
这将导致程序崩溃.但是如果我sizeof(array)用一个号码切换出来就可以,但只有8个字符被复制到剪贴板.
谁能告诉我如何解决这个问题?我直接针对Win32 API,而不是使用MFC.
您只分配32个字节的全局内存:
GlobalAlloc(GMEM_FIXED,32);
Run Code Online (Sandbox Code Playgroud)
...然后尝试将500字节填入32字节包:
memcpy(glob,array,sizeof(array));
Run Code Online (Sandbox Code Playgroud)
将GlobalAlloc更改为:
GlobalAlloc(GMEM_FIXED,sizeof(array));
Run Code Online (Sandbox Code Playgroud)
此外,您将数据粘贴为Unicode text(CF_UNICODETEXT),但它不是Unicode文本.我想这会导致......问题.
将其粘贴为纯文本:
SetClipboardData(CF_TEXT,glob);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1088 次 |
| 最近记录: |