1.記住生成的動態庫是x64還是x86,必須與使用它的平台相對應
2.extern "c" __declspec(dllexport) void function();
其中extern "c"的作用是告訴編譯器將被它修飾的**按c語言的方式進行編譯。
__declspec(dllexport)需要在生成動態庫的專案中使用,此修飾符告訴編譯器和鏈結器被它修飾的函式或類或變數需要從dll匯出,以供其他應用程式使用,否則生成不了lib檔案;與其相對的還有一句**是__declspec(dllimport),給其他專案使用時使用·此修飾符的作用是告訴編譯器和鏈結器被它修飾的函式或變數需要從dll匯入
最後是函式voidfunction(),它就是需要被其他程式呼叫的函式。
1.建立專案
2.預設生成的檔案不管,新增自己的檔案add.h和add.cpp,注意cpp檔案中必須新增pch.h
3.編譯完成後,找到檔案dll,lib,.h
4.將.**件新增到要呼叫的專案中,同時將dllexport修改為dllimport
5.dll和lib使用跟呼叫其他三方庫一樣
1)lib檔案配置
方法一:#pragma comment(lib,"path");//path為lib檔案的路徑,dll檔案與專案exe檔案放一起
方法三:在屬性管理器的全域性檔案microsoft.cpp.x64.user中新增;好處是不依賴專案
2)dll配置
1)拷貝到exe所在資料夾
2)專案屬性->配置屬性->除錯->環境 新增;path=dll檔案所在路徑;
6.注意事項
1,生成dll必須加入__declspec(dllexport),呼叫dll必須新增__declspec(dllimport)
2.呼叫dll的解決方案中,只需要新增包含__declspec(dllexport)的標頭檔案,其他標頭檔案不需要新增
3.動態庫呼叫動態庫(假設有三個專案test,dlla,dllb,,test呼叫動態庫dlla,dlla在生成時呼叫dllb)
dlla呼叫ddlb時,需要dllb的匯出的的.**件和dllb.lib檔案。不需要dllb.dll檔案
test呼叫dlla時,需要dlla.dll和dllb.dll(兩個檔案都要與test.exe或sln檔案放一起),還需要dlla.lib 和dlla匯出的的.**件(即__declspec(dllexport)修飾的.h)
關於vs2019設定動態鏈結庫
關於前面的怎麼建立乙個dll,請參考這篇部落格。寫的挺詳細的。我把pch.件貼在這裡,裡面做了詳細的注釋 pch.h 這是預編譯標標頭檔案。下方列出的檔案僅編譯一次,提高了將來生成的生成效能。這還將影響 intellisense 效能,包括 完成和許多 瀏覽功能。但是,如果此處列出的檔案中的任何乙個...
vs2019如何顯示行數 VS2019 技巧
ps 本文所有示例演示均基於 vs 2019 v16.6.3 版本。1.擴充套件 縮小選區 通過雙擊選中整個單詞,這個操作大家應該都知道。但如何快速選擇幾個單詞 或多個單詞的字串 或 塊呢?教大家乙個快捷鍵,如何快速擴充套件選擇 區域。例如,當游標在乙個字串中時,使用下面的快捷鍵就可以選擇整個字串。...
vs 2019 建立檔案模板
在vs中,經常有一些類檔案,內容大部分都是相同,比如引用,繼承等。這時候可以做乙個自己的類的檔案模板。比如 using fluentvalidation using system using system.collections.generic using system.linq using sys...