2011-02-17 135 views
0

我有一個win32 cpp dll和一個c#項目(PROJ_1),它們使用dllimport來調用win32 dll函數。這個dll包含到項目PROJ_1中,並且構建了複製到輸出目錄的操作。在c#項目中使用cpp dll

另一個c#項目(PROJ_2)引用PROJ_1 和PROJ_3引用PROJ_2。

所以,現在我們有這樣的事情PROJ_3-> PROJ_2-> PROJ_1(DLL)

所以,當我提出建立在VS 2010: 1.在PROJ_1的箱櫃i具有的Win32 DLL。 2.在PROJ_2的bin中也是 3.但是在PROJ_3中沒有win32 dll存在

問題是怎麼解決的?

回答

0

我建議你添加非託管的DLL到PROJ3解決方案,並在屬性中設置「複製到輸出目錄」爲「始終複製」

0

您可以檢查參考PROJ_2的「複製本地」屬性。 在PROJ_1中,將win32 dll添加到您的解決方案中(無需參考,只需將其作爲文件添加,就像解決方案中的類一樣)並設置屬性Build Action = Content,Copy to Output Directory = Copy always。

1

如果項目在一個VS解決方案中,您是否正確定義了項目之間的依賴項(右鍵單擊項目 - >項目依賴項)?所有項目都是爲相同的目標體系結構(64/86)而構建的嗎?

作爲側面的問題 - 你有沒有考慮編寫C++/CLI包裝?

+0

使用C++/CLI包裝與dllimport是最佳實踐嗎? – cyssima 2011-02-17 14:46:28