如何将 C# 客户端 RPC 写入远程本机 C++ 服务器?
Posted
技术标签:
【中文标题】如何将 C# 客户端 RPC 写入远程本机 C++ 服务器?【英文标题】:How to write a C# client RPC to a remote native C++ server? 【发布时间】:2012-03-03 09:41:47 【问题描述】:我必须实现一个 C# 客户端,访问本地 C++ server.exe,它具有 RPC 接口,在远程计算机上运行。
推荐的方法是什么?
我的想法是:
-
在客户端写一个C++ dll,使用RPC与服务器通信,通过COM暴露其接口,然后C#访问COM接口。(我一路经历。)
在客户端写一个C++ dll,使用RPC与服务器通信,用C++ CLR封装接口,然后C#直接访问它们。(不熟悉C++ CLR封装)
有没有更直接的方法来做到这一点?我搜索了一些其他术语,例如 Remoting,它是 WCF 的后继者,然后是 DCOM,它们是我可以使用的吗?
我的标准是越简单越好,因为我是一个懒惰的程序员。如果可能的话,新技术是首选,我的意思是,如果 WCF 是 Remoting 的新替代品,我会使用 WCF 而不是 Remoting。
【问题讨论】:
WCF 替代 Remoting 已经六年了。 【参考方案1】:可能最简单的选择是在客户端编写一个 C++ DLL,它使用 RPC 与服务器通信,并通过 pinvoke 在 DLL 中调用 C# 函数。这里的主要任务是在托管和本机之间设置函数参数的编组。该任务的复杂性取决于界面的复杂程度。
【讨论】:
感谢您的回答。我以为 C# 可能有某种更直接的方式来访问 C++ RPC 服务器,但现在我知道没有。以上是关于如何将 C# 客户端 RPC 写入远程本机 C++ 服务器?的主要内容,如果未能解决你的问题,请参考以下文章
如何附加调试器以从托管(C#)包装器进入本机(C++)代码?