天天看點

VS 動态連結庫(.dll)的加載問題VS 動态連結庫(.dll)的加載問題

VS 動态連結庫(.dll)的加載問題

問題1. include directories和Libary directories的設定

在project-->properties-->configuration properties-->VC++ directories中設定外加庫的頭檔案目錄,和庫檔案目錄,如果用的是動态庫,即.lib檔案隻是一個引用檔案,用于查找動态連結庫(.dll)檔案中的函數實作的位置。如果加載的是靜态的lib檔案,即檔案中同時包含了函數的實作,就不需要dll檔案了。 如果是動态的連結庫,在Include directories 和Libary directories設定後隻能保重不出編輯上的錯誤,在運作連結的時候還會報錯。這是需要指明你所用的外加庫是哪一個庫,需要在link-->input中的Additional Dependencies輸入庫名(*.dll)。 這裡注意是debug版還是release版的dll庫。

問題2. 動态連結庫所放的位置

在vs自帶的指令行界面中輸入set,得到下面的結果。

VS 動态連結庫(.dll)的加載問題VS 動态連結庫(.dll)的加載問題

上面是系統目前狀态的環境變量,程式在運作的時候,會按上面的路徑依次查找所需要的動态連結庫檔案,也就是說你可以将dll檔案放在上面所提供的任意一個路徑中,當然放在目前的工作目錄下也是可以的(上面沒有工作目錄)。如果你想在其中加入自己的路徑,可以在系統的環境變量中添加。 在計算機--》屬性--》環境變量中使用者變量的PATH或者是系統變量的Path中添加即可。

VS 動态連結庫(.dll)的加載問題VS 動态連結庫(.dll)的加載問題

在使用者的變量中添加有如下圖。

VS 動态連結庫(.dll)的加載問題VS 動态連結庫(.dll)的加載問題

在系統的變量中添加有下圖:

VS 動态連結庫(.dll)的加載問題VS 動态連結庫(.dll)的加載問題

圖中可以看到,雖然位置不同(系統的環境變量優先),但是都添加上去了。 這裡要注意要重新開機VS後才能生效,才可以看到變化。

問題3. 環境變量Path

在path的所有路徑中的檔案,程式等都可以在運作視窗,win7是“搜尋程式和檔案”視窗,下輸入檔案或者程式名,按下enter鍵直接運作或者打開檔案,對于檔案來說需要加字尾。 整個系統預設的運作路徑都在Path所指的路徑下,但是快捷方式不行,因為快捷方式對應的源檔案未必在Path路徑下。