VS2017的動態鏈接庫(Dynamic Link Library)配置

前言:和靜態鏈接庫不同的是,靜態鏈接庫是在程序編譯的時候就需要的,而動態鏈接庫是在程序執行的時候才需要,在VS2017這樣的集成開發環境之下,動態鏈接庫的配置方式有很多,很多文章只說了其中一些,本文針對此種情況做一個簡單的彙總。

一、直接拷貝法

將需要的動態鏈接庫直接拷貝到和可執行程序的同目錄之下,這是最常見,最通用的方法了。

二、拷貝到兩個特殊的目錄

  • 32位的 x86的動態鏈接庫 .dll 文件拷貝到C:\Windows\SysWOW64目錄下 
  • 64位的 x64的動態鏈接庫 .dll 文件拷貝到C:\Windows\System32目錄下

親測可用,但是具體爲什麼,我還沒有搞得特別清楚,望有大佬告知,這種方式可以一次拷貝,永久使用。

三、設置項目屬性

將我們需要的動態鏈接庫文件放在某一個目錄,然後我們通過設置項目屬性來完成,

執行“項目屬性/調試/環境”

如下:

然後編輯一個內容到這個環境中去,設置一個path變量,變量的值就是動態鏈接庫的目錄所在,如下:

path=C:\Users\Administrator\Desktop\Pre-built.2\dll\x64
Path=C:\Users\Administrator\Desktop\Pre-built.2\dll\x64
PATH=C:\Users\Administrator\Desktop\Pre-built.2\dll\x64

這幾種形式都可以,我自己試驗過,path不區分大小寫。

 

個人猜想:在vs中動態鏈接庫會在環境變量path中尋找動態鏈接庫,而前面的

  • C:\Windows\SysWOW64
  • C:\Windows\System32

這兩個目錄都是在path之下的,所以這就是爲什麼想很多庫的配置,比方說OpenCV,也要求將某幾個動態鏈接庫放置在上面的兩個目錄之下,而且這樣可以做到一勞永逸,不用每次都配置或者是複製相關的鏈接庫。不正確的話希望有大佬告知!!!

 

那如果是同時通過上面三種方式指定了動態鏈接庫,搜索順序怎麼樣呢?

windows一般搜索的動態鏈接庫dll目錄爲System32或者SystemWOW64目錄PATH環境變量指定、以及當前目錄

實際上我們可以通過項目屬性進行查看的,如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章