2009-06-09 48 views
2

我有一個C++ DLL需要在C#類庫中調用一個函數(傳遞一個值,返回一個值)。C++ DLL調用C#DLL的選項是什麼?

是我唯一給了C#DLL COM接口和C++與IDispatch接口調用它的選擇嗎?

這是最好的方法是什麼?將工作

+0

有沒有什麼辦法可以使用託管C++並完全避免使用COM? – Stu 2009-06-09 18:12:51

+0

這是一個C#應用程序或C++應用程序嗎? – jjxtra 2009-06-09 18:14:01

回答

5

幾個選項供你在這裏

  1. 通過將幾個關鍵C#類型的使用混合模式,C++/CLI裝配爲一體的C++和C#DLL
  2. 使用一個COM橋之間的橋樑作爲COM對象。這可以通過C++代碼通過正常的COM語義訪問
0

一種方法是調用它雖然COM。您可以使用the Regasm tool來創建COM包裝器。

0

這不是唯一的選擇

你也可以編譯你的C++ DLL作爲一個託管的DLL。

你可能擁有你的C#DLL作爲服務和遠程進去。

1

This project爲類中的靜態方法創建dll導出。然後,您可以從非託管代碼調用C#靜態方法。