VC SendMessage
我做一个全局钩子(dll),在全局钩子中截到我想要的消息后,发送给安装全局钩子的那个窗体.
我的问题是:窗体中能接收到消息,但是是乱码?
给我个解决方法
char buf[256];
GetClassName(hwnd,buf,255);
if(strcmp(buf, "msctls_statusbar32 ")==0)
{
GetWindowText(hwnd,buf,255);
//pMain是全局变量,在安装钩子的时候,赋的值
if(pMain!=NULL)
{
PostMessage(pMain,WU_GETURL,(WPARAM)buf,(LPARAM)buf);
}
DeleteObject(buf);
return false;
}
DeleteObject(buf);
return true;
[解决办法]
用SendMessage发
[解决办法]
不是SendMessage或Post的事情。
你最好用COPYDATA消息来做,在VCKBASE上有例子,可以找找,
你现在的做法,还需要做很多事情,你要让你Hook DLL访问你的进程,V~Alloc一个内存,
WriteProcMemory你的buf,才行的。
[解决办法]
根源是不同进程的地址空间的问题。
[解决办法]
char buf[256];这个字数组是你用来发送消息的吗?应该将它设成共享
[解决办法]
char buf[256];应该是一块new出来的内存,因为你退出这个函数,这个变量的作用域就结束了,接受方收到的数据就不对了。