XmHand
2021-01-18 09:54vc++二次调用OpenClipboard(NULL)出错
10这几天学习VC++ 用的VS2019 ,利用剪贴板向QQ聊天窗口 粘贴内容,但是第2次调用时就出错,代码如下:
void CSendQQmsg::CopyToClipboard(CString str)
{
if (str.GetLength() >= 40)
{
return;
}
TCHAR a[40];
memcpy(a, str.GetBuffer(0), (str.GetLength() + 1) * sizeof(TCHAR));
HGLOBAL hMem;
LPTSTR pStr;
// 分配内存空间
hMem = GlobalAlloc(GHND | GMEM_SHARE, (str.GetLength() + 1) *sizeof(TCHAR));
pStr = (LPTSTR)GlobalLock(hMem);
wcsncpy_s(pStr, 40, a, 40);
GlobalUnlock(hMem);
if (OpenClipboard(NULL)) //二次调用在这次出错
{
TRACE("剪贴板打开成功\n");
EmptyClipboard(); // 清空
SetClipboardData(CF_UNICODETEXT, hMem);// 设置剪贴板文本
CloseClipboard(); //关闭剪贴板
}
else
{
TRACE("剪贴板打开失败 %x\n",GetLastError());
GlobalFree(hMem);
}
}
C不多,求师傅们指教,感激不尽!
- 点赞
- 收藏
- 复制链接分享
2条回答
为你推荐
- ubuntu虚拟机mac主机使用VirtualBox,可以拖放文件,无法复制粘贴文本,如何解决?
- linux
- ubuntu
- 3个回答
- 如何在Go中将文本复制到剪贴板或从剪贴板复制文本? [关闭]
- clipboard
- python
- command-line
- 1个回答
- JavaScript 一键复制不兼容ios求解决方法
- ios
- javascript
- 2个回答
- js实现自动复制(不是点击),能够兼容所有浏览器
- javascript
- 浏览器
- 7个回答
- C#中的RichTextBox的内容刷新问题
- scrolltocaret
- richtextbox
- c#
- 5个回答
换一换