VS2013进程通讯-剪贴板

本文探讨了使用VC++进行进程间数据复制时遇到的问题。具体是在从Program A向Program B复制字符串数据时,只能成功复制一个字符的情况。文中详细展示了Program A中用于复制数据的代码片段。

《VC++深入详解》17.1进程通信

I caught a problem when I want to copy something form program A to program B. 

This is program A.

This is program B.

After I clicked The SEND button in program A.We can copy it in program B.But...

there is only one letter.
Here is the code in program A.
void CCaptionDlg::OnBnClickedBtnSend()
{
	// TODO:  在此添加控件通知处理程序代码
	if (OpenClipboard())//打开剪贴板
	{
		
		CString str;	//保存发送编辑框上的数据
		HANDLE	hClip;	//保存调用GlobalAlloc函数后分配的内存对象的句柄
		WCHAR*	pBuf;	//保存调用GlobalLock函数后返回的内存地址
		CString buf;
		EmptyClipboard();	//清空剪贴板上的数据
		GetDlgItemText(IDC_EDIT_SEND, str);
		hClip = GlobalAlloc(GMEM_MOVEABLE, str.GetLength() + 1);
		pBuf = (WCHAR*)GlobalLock(hClip);
		//http://www.cppblog.com/shongbee2/archive/2009/04/28/81349.html
		//http://zhidao.baidu.com/link?url=1mAaN6rI_LYx2Cm9DHNBxXGpSq86OOianuDqQisjaZAtVko1Hjj55kSUv327GBww5lmlFDU2DJ2arKMz0rtg4_
		int a=str.GetLength()+1;
		wcscpy_s(pBuf,a , str);
		GlobalUnlock(hClip);
		SetClipboardData(CF_TEXT, hClip);
		CloseClipboard();	//关闭剪贴板
	}
}




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值