日期:2014-05-18  浏览次数:21115 次

C#程序如何访问C++的RPC(远程过程调用)接口
刚刚接手了一项工作,实现两个程序之间的互操作,一端是很早以前用C++编写的,用RPC的方式对外提供了一些接口,另一个程序是用C#编写的,在网上搜了搜没有找到关于C#调用C++ RPC接口的文章,请问各位有了解或者做过这方面内容的吗,恳请告之一二,万分感激

------解决方案--------------------
RPC采用的什么标准?这个要搞清楚,
------解决方案--------------------
这是封装后的,看看通讯方式、通讯协议吧
------解决方案--------------------
你确定不是 COM 组件?
------解决方案--------------------
需要 通过 com 组件 吗?


http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx

------解决方案--------------------
探讨

RPC端的代码差不多是这样的:
RPC_STATUS ret = RpcServerUseProtseqEp((RPC_CSTR)"ncacn_ip_tcp",
RPC_C_PROTSEQ_MAX_REQS_DEFAULT,
(RPC_CSTR)"13521", NULL);


RpcServerRegisterIfEx(
HelloWorld_v1_0_s_ifspec, //……

------解决方案--------------------
探讨

引用:
需要 通过 com 组件 吗?


http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx


链接打不开。。。

应该是不通过COM组件的,当然要是能借助COM组件达到目的,也未尝不是一种方法,问题就是C++端程序因为一些原因,修改起来外界干扰大一些

------解决方案--------------------
搞过这玩意儿,C#调rpc方法,做法就是和10楼说的一样