我有一个加载到多个进程的DLL。 什么是一个干净的方式来沟通这些进程/ dll。 发送简单字符串是目标。 我宁愿避免sendmessage,file io和发送字符串命令的地址。
答案 0 :(得分:5)
我会调查shared memory。在MSDN上有一个不错的example。
请记住,就像在同一进程中使用线程一样,对共享内存的访问不是序列化的。您需要某种形式的同步(例如,命名的互斥锁)来序列化对内存块的访问。
答案 1 :(得分:2)
我假设您正在为Windows编码。
如果您的通信是流程之间的点对点,则命名管道可能是最佳解决方案。您可以轻松设计客户端/服务器式协议,例如:
客户:这是要处理的数据
服务器:以下是处理您的请求的结果
命名管道也可以轻松移植到其他点对点机制,如套接字或匿名管道。
如果您的通信不是点对点的,并且您需要在多个进程之间维护公共共享数据,那么安德烈建议的内存映射文件是更好的选择,但肯定需要互斥保护才能可靠。
答案 2 :(得分:0)
由于其他人都认为Windows可以假设UcOs / II吗?使用消息邮箱。好吧,我想如果你在Windows上必须有类似的快速谷歌出现Mailslots。
答案 3 :(得分:0)
Microsoft对进程间通信的不同方法有相当全面的概述。
The article解释了最常用方法的优缺点。其中有
本文的每个部分都提供了指向更多文档的链接,包括一些非常有用的代码示例。