windows 应用之间通信如何实现

两个exe程序之间要实现函数调用(为了数据交互)如何实现,用vs开发的;
除了socket通信、读写文件还有什么比较好的实现方法

两个exe的通信,属于进程间通信(即IPC),IPC可通过剪贴板,DDE、邮件槽、Windows消息、管道、内存映射文件、套接字(Socket)等方式进行原生数据的传输,也可以通过组件对象模型(COM)进行更高级的面向对象的通信。

具体选择哪种方式,取决于问题的抽象等级,通信数据量,通信效率,进程耦合性等,需要具体问题具体分析。

进程间通信之-共享内存,可以百度一下

共享内存,管道 都可以的

进程间通信之-共享内存

内存共享、管道、粘贴板、

1、共享

在硬盘上建立一个文件,一个应用程序往该文件里写数据(可以不关闭文件,但必须刷新缓冲区),另一个应用程序以共享方式打开这个文件并读取其中的内容,这便是最简单的一种数据交换方式。对于网络用户而言,只要两台终端上安装的都是Win311 For Workgroup或Windows 95(或NT),则只要设置一下目录共享,映射成网络驱动器,同样可以简单地实现数据交换。但它的缺点也是显而易见的:只能采取轮询的方式获得最新数据(效率低下),网络映射的驱动器绝对不能变动或取消(可靠性差),所以这是一种“低级”的通讯方式。

2、DDE

每个Windows程序员都不会对DDE(动态数据交换)感到陌生,它是最早的基于Windows的数据交换方法,有三种方式可供选择:冷连接、温连接和热连接。一般都是由客户端向服务器端发出连接申请,并且必须指明服务器端的名字和标题。在连接建立后,数据可以双向流动。典型的例子如抓图软件SnagIt,它提供了DDE接口,能够让其它应用程序来控制它。DDE是完全向后兼容的,从16位平台转到32位,源代码几乎不用修改。

DDE还有网络功能。使用过Win311 For Workgroup的人大概都还记得,它自带一个非常吸引人的小程序“Chat”,能使两台计算机通过网络实时交谈,这在当时几乎是一项创举。可是很少有人知道“Chat”使用的是一种特殊的DDE,即NetDDE。它的基本工作原理仍然是DDE,但它能使一台计算机向在同一个网络中的另一台终端发消息,而不像普通DDE 只能局限在同一台机器上。与其它的数据交换方式相比,DDE已不够先进,而且Microsoft也不再积极支持DDE,所以它的前景不被看好。

看你要做到什么精细程度了
做socket和数据库是比较精细的
也可以用注册表, 或者硬盘文件, 那就比较凑合了
但是效果上都是管用的