3
我正在創建一個CLI項目以環繞現有的本地C++項目(同一解決方案文件中的兩個獨立項目)。我想包含一個指向本地類的指針,作爲託管類中的成員。從我在線閱讀的文檔中可以看出,如果託管代碼和非託管代碼都在同一個項目中,就可以完成此操作。如果本機代碼和託管代碼位於不同的項目中,則唯一的選擇是在兩個項目之間使用dllimport和dllexport屬性,並將本機代碼類功能作爲靜態函數導出。將本地C++類導入CLI項目
這些是我唯一的選擇,還是我可以在兩個單獨的項目之間導入和導出整個本機類?我問,因爲這決定了我如何設計我的託管包裝。提前致謝。
如果本地項目設置爲構建靜態.lib而不是DLL,它也會有所幫助。否則,您可能會很容易遇到問題,如從一個CRT堆分配並嘗試釋放另一個CRT堆。有時候,值得激活「鏈接庫源」選項,因爲鏈接到靜態庫不會在不需要的對象中運行全局構造函數。 「它工作正常(如果你很小心」,但比p/invoke要容易得多) – 2011-03-28 23:08:30
這很好,我的本地代碼是一個dll而不是靜態庫 – John 2011-03-29 14:05:18
你可以讓VS讓你成爲一個「便利庫「,你可以鏈接到調用項目 – 2011-03-29 14:06:27