关于不同进程之间通信的问题!!
..............................
下文是我在网上看到的!!!!
    ---以下方法可以实现通讯,但有些疑问!希望达人指教!! 
    ---谢谢了! ^_^
------------------------------------------------------------------------
A:我认为你应该在两个进程的最高级窗口中都注册该消息.请看下例:
static UINT sBroadcastCommand = ::RegisterWindowMessage( _T("BroadcastCommand"));
BEGIN_MESSAGE_MAP( Gui_Top_Level_MainFrame, Gui_MainFrame )
    ON_REGISTERED_MESSAGE( sBroadcastCommand, onBroadcastCommand )
END_MESSAGE_MAP()
LRESULT Gui_MainFrame :: onBroadcastCommand( UINT aMsg, LPARAM lParam )
{
    your code...
}然后发送进程应该包含:
static UINT sBroadcastCommand = ::RegisterWindowMessage( _T("BroadcastCommand"));
void Someclass :: someMethod( void )
    {
    ::PostMessage( (HWND)HWND_BROADCAST,sBroadcastCommand, 0,yourMessageId );
    }
------------------------------------------------------------------------------------
以下是我的疑问!!!
1: 在onBroadcastCommand( UINT aMsg, LPARAM lParam )中的aMsg是什么? 一开始我以为是消息值(既是sBroadcastCommand )但后来发现发送消息时的值,和接受进程中的aMsg的值不相同,
 
2: 广播消息时,如果我想传输一个字符串给接受进程,发现失败了(发送时字符的地址和接受的地址不相同),但如果传输的是整数就OK,????

解决方案 »

  1.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/creating_named_shared_memory.asp
      

  2.   

    WM_COPYDATA也可以实现简单的需求,复杂的大量数据就需要共享内存等手段了
      

  3.   

    ---> lixiaosan(小三) ?? 不行啊!
       完全按照
       http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/creating_named_shared_memory.asp
    上的都不行啊!
         我调试CreateFileMapping都没有问题,但在第二个进程取数据时,用GetLastError()获得
    "系统找不到指定的档案。 "的错误啊!
       对OpenFileMapping部分我什么都没有改啊!
    ????????
    ---> WM_COPYDATA这种方法,需要知道对方的句柄,有的麻烦!!