从ac#program我想使用带有SendMessage的WM_COPYDATA与传统的c ++/cli MFC应用程序进行通信.
我想传递一个包含字符串对象的托管结构.
我可以找到c ++应用程序的句柄,以便与SendMessage一起使用.
我不知道的是如何在另一端编组和读取结构及其字符串.特别是因为它包含非blittables.
人们认为这是可行的吗?我会继续努力,但会很高兴有人做过这样的事情告诉我它是否会起作用.
这是一些演示代码,如果它是一个c ++/cli程序,并不难让它工作.但是,我希望它在.Net类库中,以便可以轻松地重复使用.
//Quick demonstation code only, not correctly styled
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
struct MessageInfo
{
int nVersion;
char szTest[ 10 ];
};
MessageInfo sMessageInfo;
sMessageInfo.nVersion = 100;
strcpy( sMessageInfo.szTest, "TEST");
COPYDATASTRUCT CDS;
CDS.dwData = 1; //just for test
CDS.cbData = sizeof( sMessageInfo );
CDS.lpData = &sMessageInfo;
//find running processes and send them a message
//can't just search for "MYAPP.exe" as will be called "MYAPP.exe …Run Code Online (Sandbox Code Playgroud)