发送从一个C++程序到另一个字符串并等待回应

问题描述:

我们将在Visual Studio 2010中同时运行两个C++的Win32控制台程序,我们希望能够从一个到另一个发送消息(字符串)。程序1向程序2发送消息并等待程序2发回消息。一旦程序2发送回复,它现在将等待来自程序1的下一条消息而不退出。发送从一个C++程序到另一个字符串并等待回应

+0

同时运行的应用程序?或者应用#1是否可以启动应用#2? – 2013-02-09 00:12:24

+0

看看使用套接字?如果两个程序始终在同一台计算机上,则可以使用共享内存。 – Cameron 2013-02-09 00:12:46

+0

了解更多关于[IPC](http://en.wikipedia.org/wiki/Inter-process_communication) – mlt 2013-02-09 00:14:56

有许多不同的方式来交换在同一台PC上运行多个应用程序之间的数据。它们属于“互操作性通信”这个通用术语。使用您最熟悉的任何IPC机制 - 文件,注册表,套接字,命名管道,MailSlots,ActiveX,远程过程调用,共享内存或WM_COPYDATA窗口消息。他们都有其优点和缺点,所以你需要自己决定哪一个最适合你的实际需求。

+0

感谢。我们看了一下'WM_COPYDATA',并在一定程度上理解了它。你能解释'SendMessage(..)'和'GetMessage'是如何工作的吗?我如何发送字符串?我能够使用'FindWindow'连接并找到正确的窗口' – CarbonD1225 2013-02-09 01:08:59

+0

'COPYDATASTRUCT cds; cds.dwData = AUniqueId; cds.lpData =“我的字符串”; cds.cbData = strlen((char *)cds.lpData); SendMessage函数(hOtherAppWnd,WM_COPYDATA,(WPARAM)hThisAppWnd,(LPARAM)&cds);' – 2013-02-09 01:13:49

+0

可以请你澄清'SendMessage'应怎样其它程序来接收这个'hThisAppWnd'的使用情况如何?我们使用'GetMessage'如下所示: 'MSG msg; \t而(的GetMessage(味精,NULL,0,0)> 0) \t { \t \t的std :: COUT CarbonD1225 2013-02-09 01:19:14

查看一个简单的程序,这里举例和说明使用套接字来发送服务器和客户端之间的数据:Getting Started with Winsock (Windows)

这是方法做进程间通信的一个。在Windows其他进程间通信的方法在这里看到:Interprocess Communications (Windows)