PostMessage使用 疑难??? - C++ Builder / Windows SDK/API
请问各位大哥,我想使用PostMessage从程序A传递结构体给程序B。但B接受到的数据总是为空???
程序A:
typedef struct backupinfo
{
int sign;
int backup;
char backuppath[100];
}BackupInfo;
BackupInfo *backup = new BackupInfo() ;
backup->sign = 2;
backup->backup = 1;
strcpy(backup->backuppath, backupdbpath.c_str());
PostMessage(hWnd,1500,NULL,(LPARAM)backup);
程序B:
typedef struct backupinfo
{
int sign;
int backup;
char backuppath[100];
}BackupInfo;
void __fastcall TForm1::WndProc(Messages::TMessage &Message)
{
switch (Message.Msg)
{
case 1500:
{
BackupInfo *backup = new BackupInfo;
backup = (BackupInfo *)Message.LParam;
int bakup = backup->bakup;
int flag = backup->sign;
....
}
}
[解决办法]
两个不同的进程之间不能这样简单地共享内存数据。
你可以使用WM_COPYDATA消息来传送整个内存块(这个消息必须使用SendMessage发送),或者使用其它IPC方法,如FileMapping,管道或都直接读对方进程内存之类。
[解决办法]
不好意思,我看错了,原来是2个进程之间的通信