製作dll:
1.新建專案----動態鏈結庫(dll)
2.指定名稱和位置,建立
3.新增自己寫好的test.cpp和test.**件
4.test.cpp檔案最前面包含
#include "pch.h"
5.test.**件中宣告的函式或類前加
__declspec(dllexport) //放在型別前後都可以
如:
class __declspec(dllexport) xtcp
;__declspec(dllexport) void func(void);
6.生成解決方案
如需要更改dll和lib輸出目錄將下面步驟放在第6步之前即可。
更改輸出目錄(到自定義目錄):
1.配置屬性----常規----輸出目錄:
..\..\..\bin
2.配置屬性----聯結器----高階----導入庫:
..\..\..\lib\$(targetname).lib
3.配置屬性----除錯----
..\..\..\bin
使用dll2.lib:
1.在同一解決方案下新增新專案
2.解決方案----屬性----啟動專案設定為新專案、專案依賴項設定為新專案依賴dll2----確定
3.新專案配置屬性----c/c+±—常規----附加包含目錄設定為dll2專案所在目錄
4.鏈結器----常規----附加庫目錄設定為lib庫的目錄
5.鏈結器----輸入----附加依賴項----新增dll2.lib;
6.新專案。cpp檔案#include包含要使用的標頭檔案
還是之前的專案
1.編寫makefile:
libsocket.so:test.cpp test.h
g++ $+ -o $@ -fpic -shared -std=c++11 #-fpic**與位置無關,-shared 製作動態庫
2.使用條件編譯處理windows和linux下不相容的**
2.執行make即可生成libsocket.so檔案
linux下使用:
1)要呼叫該庫的專案的makefile檔案:
***x:***.cpp
g++ $+ -o $@ -std=c++11 -i../dll2/dll2 -lpthread -lsocket -l../dll2/dll2 #-i指定庫的標頭檔案,-l指定庫名稱(socket),-l指定.so檔案的路徑
2)對該專案make編譯,完成後使用時還需要指定庫:
1.執行時匯出到環境變數來解決
export ld_library_path=../dll2/dll2
./tcpserver
2.將製作的.so檔案放到系統的庫目錄,就可以直接執行了
cp *.so /usr/lib
關於vs2019設定動態鏈結庫
關於前面的怎麼建立乙個dll,請參考這篇部落格。寫的挺詳細的。我把pch.件貼在這裡,裡面做了詳細的注釋 pch.h 這是預編譯標標頭檔案。下方列出的檔案僅編譯一次,提高了將來生成的生成效能。這還將影響 intellisense 效能,包括 完成和許多 瀏覽功能。但是,如果此處列出的檔案中的任何乙個...
vs2019建立動態庫
1.記住生成的動態庫是x64還是x86,必須與使用它的平台相對應 2.extern c declspec dllexport void function 其中extern c 的作用是告訴編譯器將被它修飾的 按c語言的方式進行編譯。declspec dllexport 需要在生成動態庫的專案中使用,...
VS2008如何製作動態鏈結庫
1 選擇new project win32 console project 2 輸入你的檔案名字 按下next 選擇dll 選擇ok 3 在工程中新增乙個與工程名字同名的test.h檔案,在檔案中寫入 extern c declspec dllexport void testexam char in...