2011-11-29 21 views
3

我PROJECT1在這裏 \ PROJECT1 \ BIN \調試\ application.exe 和我的DLL被 \ PROJECT1 \調試\ 3rdparty.dllDll導入路徑。如何獲得其位於其他文件夾中的DLL路徑

如何獲得路徑包括這個DLL在我的代碼?

[DllImport("????????/3rdparty.dll")] 

要我寫的問號是什麼(?????) 我的解決方案包括內部的其他C++項目。因此,無論何時編譯C++項目,它都會刷新project1 \ Debug中的dll(我對C++不熟悉) 我需要在DllImport [Path]中使用該dll。 如果我試圖添加引用,它會給我錯誤。 這可能是一個非常簡單的問題,但由於某些原因,我無法解決這個問題。

+2

將C++項目中的輸出目錄設置更改爲$(SolutionDir)bin \ $(ConfigurationName),以便本機DLL最終以與託管程序相同的文件夾。只需在你的C#代碼中使用[DllImport(「3rdparty.dll」)]。它的工作原理是 –

+0

。感謝Hans。 –

+0

請接受答案作爲解決方案,如果它的工作。這可以有益於其他社區成員閱讀此線程 – Oswald

回答

1
  1. 在'解決方案資源管理器'中,右鍵點擊'參考'。
  2. 點擊「添加參考」。
  3. 選擇「瀏覽」選項卡並選擇您的3rdparty.dll。
  4. 添加後,右鍵點擊'References'下的3rdparty.dll,並將'Copy Local'更改爲true。
  5. 然後,只需指定的DllImport像正常[DllImport("3rdparty.dll")]

這隻會如果.NET程序集的工作。由於看起來您正在使用C++ DLL,因此您需要查看Using C++ Class DLL in C# Application

+0

我已經試過這個,但得到的錯誤消息「對dll的reference無法添加」 –

+0

請參閱:http://stackoverflow.com/questions/3456758/a-reference-到了-的dll可能 - 而不是要添加的。只能添加.Net程序集作爲參考。 – SwDevMan81

+0

感謝您的信息。我不只.NET組件可以添加爲參考。 –