簡體   English   中英

將現有的C ++項目編譯為DLL

[英]Compiling existing C++ project to DLL

我正在開發一個包含C ++項目的繼承項目,該項目已成功編譯為.exe。 現在我想嘗試將這個項目集成到.NET表單中,所以我想將它作為一個DLL(從我讀過的內容看起來更容易,如果我使用dll而不是exe),所以我想編譯我的C ++項目到.DLL。 我嘗試通過右鍵單擊項目並對屬性進行調整,但即使我在重建項目時選擇.dll選項,我仍然得到exe文件。

以下是三個“最干凈”的選項:

  1. 在C ++代碼周圍創建一個C ++ / CLI (也稱為“Mangaged C ++”)包裝器,將這些函數作為類方法公開。然后,就像使用C#類一樣,可以從C#調用這些方法。

  2. 圍繞C ++函數創建一個COM包裝器。 與創建CLI包裝器非常相似,但也可以在非.NET環境中使用(例如,VBA)

  3. 使用P / Invoke調用 C ++ DLL。 這需要最少的C ++編碼,但也可能很難使interop正確,特別是如果你正在編組結構或其他復雜的數據類型。

你至少需要改變

  • 常規/配置類型
  • 鏈接器/通用/輸出文件

但是您的DLL應該實現DllMain以確保正確完成運行時初始化。

另一種方法可能是創建一個新的DLL項目並添加EXE中的所有代碼。 這使得項目向導腳本運行相應的行。

要了解C ++ / CLI,我找到的一個很好的資源就是這個鏈接: http//vishnunath.com/cli-programming

使用COM Interop將C ++類與.NET框架集成。

在Visual Studio中,最容易采取阻力最小的路徑。 只需創建一個新的空DLL項目,將源文件添加到它,更改C ++詳細信息(在屬性下),瞧! 試圖手動更改項目設置似乎總是留下很多冗余的糠..

在代碼生成下,您可能需要多線程(調試)DLL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM