想用发送自定义消息的方式跨进程传递字符串,尝试过并失败的方法有:
1, new一个CString
2, TCHAR 数组
3, API GlobalAlloc()
皆因为分配的内存都在发送方进程的heap内
这里使用GlobalAlloc()也失败的原因是,在win32内,该函数与LocalAlloc()已没有分别,但好像如果不使用GMEM_FIXED参数,而是GMEM_MOVEABLE就可以跨进程?因为此时返回的是一个handle,而非指针,需要用GlobalLock()才能从这个handle得到真正的指针,没试过,不知真假
最后我用的方法是使用映射文件,创建一个全局的名字即可,
发送方:
HANDLE hSendFileMap
=
CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE,
0
,
96
,
"
DelDeveiceDataMap
"
);
if (hSendFileMap)
... {
pApp->pDelDeviceEntity
if (hSendFileMap)
... {
pApp->pDelDeviceEntity