大虾们, 今天遇到个问题,就是想程序A和程序B间用message通讯,由于message携带的信息量大,需要申请一个空间来存储这些信息,并作为指针由message发送到另外一个程序中使用,运行后发现,A不能访问message中的空间指针,这个指针是由B malloc后给message传递给A的. 由2个问题:
1. 为什么A不能访问message中的指针?
2. 寻求A,B间通讯的方法(通讯信息量大).

解决方案 »

  1.   

    一个进程不能访问另一个进程的地址空间啊,通信方法可以用socket,pipe等进程间通信方法
      

  2.   

    还可以用注入的方法啊 VirtualAllocEx---》WriteProcessMemory----》CreateRemoteThread,
      

  3.   

    每个进程有独立的地址空间,进程间不能传递指针。如果是利用消息传递数据,可以用WM_COPYDATA消息,系统会替你把数据复制到目标进程。如果要了解更多有关进程间传递数据的方法,可以在网上搜索一下。