2012-08-06 31 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