跟SendMessage()一样.
但是我是想把一个结构体从一个程序发送到另一个程序.
比如:
struct S_Data
{
...
};
S_Data stA;要把"stA"从sender.exe发送到receiver.exe
怎样实现?
但是我是想把一个结构体从一个程序发送到另一个程序.
比如:
struct S_Data
{
...
};
S_Data stA;要把"stA"从sender.exe发送到receiver.exe
怎样实现?
2、内存映射文件,使用CreateFileMapping等函数来完成
3、命名管道
4、socket通信上面四中方法都可以实现楼主的要求!
WM_COPYDATA可以用于PostMessage吧?
// 在2.exe中发送数据
void CMy2Dlg::OnBnClickedOk()
{
HWND hWnd = ::FindWindow( NULL, "1" );
if ( hWnd )
{
S_Data stData;
stData.n = 874;
strcpy( stData.sz, "witsun" );
COPYDATASTRUCT data;
data.dwData = sizeof(stData);
data.cbData = 1;
data.lpData = &stData;
::SendMessage( hWnd, WM_COPYDATA, (WPARAM)m_hWnd, (LPARAM)&data );
int n = 0;
}
}// 1.exe中的pData是错误的
BOOL CMy1Dlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
S_Data* pData = (S_Data*)pCopyDataStruct->lpData; return CDialog::OnCopyData(pWnd, pCopyDataStruct);
}
{
int n;
char sz[123];
};