2014-12-20 134 views
0

我是新的C++,我有一個dll文件,名爲DiceInvaders.dll,在我的項目中,我需要使用這個庫,我正在使用visual C++ 2010,我設置了該LinkerInputDiceInvaders.libDiceInvaders.dll,我也複製此DLL文件到我的,項目的目錄,我一直在這行代碼有錯誤:visual C++,LINK:致命錯誤LNK1104:無法打開文件

m_lib = LoadLibrary("DiceInvaders.dll"); 
assert(m_lib); 

的錯誤是斷言失敗。我應該如何解決這個問題?先謝謝你。

+0

dll可能不在正確的路徑。 –

+0

Euh ... *虛擬C++ 2010 *或* visual C++ 2010 *? – Christophe

+2

不要將'DLL'作爲庫傳遞給鏈接器,它不能以這種方式鏈接。 –

回答

4

首先你不能像你一樣將DLL傳遞給鏈接器,它不是鏈接器識別的文件類型,也不能以這種方式鏈接。當您創建Diceinvaters.dll文件時,鏈接器將創建一個具有相同文件名和擴展名.lib的導入庫。看起來這已經完成了。這是在構建任何使用它的應用程序時應該傳遞給鏈接器的庫文件。

其次,Diceinvaders.dll文件必須可在DLL search path訪問。這取決於您使用的Windows版本略有不同,但通常類似於以下內容:

  1. 程序的加載目錄。
  2. 當前工作目錄。
  3. 系統目錄。
  4. Windows目錄。
  5. PATH環境變量中列出的目錄。

將DLL放在您的項目目錄是不夠的。相反,您應該將其放在與該文件相關的EXE文件所在的目錄中。

+0

所以我只需要把dll文件放在目錄作爲exe文件,在visual C++上不需要做什麼? – Tom

+0

正確。只要您鏈接到導入庫(DiceInvaders.lib)或使用'LoadLibrary'將它放在與'.exe'相同的目錄中,這是唯一能夠使其工作的工具。 –

+0

謝謝,我從我的老師那裏得到了這個dll文件,但是沒有相應的lib文件,我該如何從dll文件生成一個lib文件。 – Tom

相關問題