在c++程序和.net程序之间进行远程调用的最简单方法

Easiest way to do remote calls between a C++ program and a .NET program

本文关键字:程序 调用 方法 最简单 程调用 c++ net 之间      更新时间:2023-10-16

我有一个。net程序在后台运行,需要创建一个可以与该程序通信的Windows Shell扩展。起初,我想我会在。net中创建我的Shell扩展,并使用IpcServerChannel和IpcClientChannel在服务器之间进行远程调用。. NET程序)和客户端(。. NET Shell扩展)。这真的很简单,而且工作得很快。

现在我意识到在。net中创建Shell扩展并不是一个好主意,因为在某些情况下它可能无法加载(例如,如果一个。net 1.0 Shell扩展将首先加载)。我想我可能会走c++路线,然后,但在这种情况下,有一个简单的方法,使我的c++外壳扩展做远程调用到我的。net程序?或者你有任何其他的想法,使我的两个程序通信(我宁愿如果我不需要设计一个通信协议,可以直接在一个库)。

谢谢!

嗯,你可以试试SendMessage(WM_COPYDATA)

但是,如果你对它感兴趣,它会更容易扩展(和可维护),只是做一个命名管道或本地inet套接字。实际上,设计通信协议并不像听起来那么困难:只需发送带有参数的序列化结构体,然后等待序列化的回复即可。然后处理超时和格式错误,完成!