windows进程间的通信

主要通过WM_COPYDATA消息接收其他进程发来的消息


1,发送端进程代码

void SendMessageToOtherWnd(char* pData)          //参数可以是字符串,数组,结构体等
{
	if (NULL == pData || strlen(pData) <= 0) return -1;

	CWnd *pWnd = NULL;
	pWnd = CWnd::FindWindow(NULL, _T("OtherWnd"));   //要发送的窗口句柄,名字是创建时传入
	if (NULL == pWnd) return -1;

	UpdateData();		// 更新数据

	COPYDATASTRUCT cds;
	cds.dwData = 1;         //发送类型:0不知是什么,测过字符串可以,1字符串,2数组,3结构体
	cds.cbData = 10;        //发送长度
	cds.lpData = pData;     //要发送的数据

	pWnd->SendMessage(WM_COPYDATA, NULL, (LPARAM)&cds);

}

2,接收端进程代码

消息处理函数中

LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)

    case WM_COPYDATA:
            COPYDATASTRUCT *pCopyDataStruct = (COPYDATASTRUCT *)lParam;
            char *pData = (char*)pCopyDataStruct->lpData;           //接收到的数据,你可自行处理



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值