2012-08-06 77 views

回答

1

如果你的C++编译器是最近的Visual C++版本,与所有支持书面扩展托管代码,那么你可以使用WCF容易C++程序和之间传递数据C#应用程序。

如果您的C++编译器不支持托管代码扩展,您仍然可以这样做,但这样做很多工作,因为WCF通道堆栈使用某些分层的专有协议进行消息成帧,安全协商和消息编码如果不能使用WCF提供的托管实现,则需要在C++端重新实现。有关出现的问题,请参阅例如this question

如果你不能做托管C++,常常更容易放弃一些由WCF提供的福利,并根据您的要求,要么是:

  • 使用管理的COM可见包装器一个C#WCF服务,作为C++代码中的COM服务器使用;或
  • 使用命名管道直接滚动您自己的IPC机制,在C++端调用WIn32 API并在C#端使用System.IO.Pipes类型。
+0

是的,使用WCF并没有那么困难!唯一的问题是,在C++中关于NetNamedPipeBinding的文档太少了,我很难确定如何使它工作,但是那真的很简单! – darkheir 2012-08-21 12:30:15