0

我已经看到 NetNamedPipeBinding 存在于 C# 和 C++ ( source ) 中,我想知道是否可以使用它在 C++ 程序和 C# 应用程序之间传输数据?

4

2 回答 2

2

这里有一个很好的例子,展示了如何在 C++ 和 C# 之间进行 IPC(进程间通信)。

于 2012-08-06T12:31:01.720 回答
1

如果您的 C++ 编译器是 Visual C++ 的最新版本,并且具有支持编写托管代码的所有扩展,那么您可以轻松地使用 WCF 在 C++ 程序和 C# 应用程序之间传递数据。

如果您的 C++ 编译器不支持托管代码扩展,您仍然可以这样做,但工作量很大,因为 WCF 通道堆栈使用一些分层的专有协议进行消息框架、安全协商和消息编码,您需要如果您不能使用 WCF 提供的托管实现,请在 C++ 端重新实现。例如,请参阅此问题以了解出现的问题类型。

如果您不能使用托管 C++,通常更容易放弃 WCF 提供的一些好处,并且根据您的要求,可以:

  • 在 C# WCF 服务周围使用托管的 COM 可见包装器,在 C++ 代码中用作 COM 服务器;或者
  • 直接使用命名管道滚动您自己的 IPC 机制,在 C++ 端调用 WIn32 API 并在 C# 端使用 System.IO.Pipes 类型。
于 2012-08-21T09:54:10.183 回答