本文通過乙個demo演示dll的編寫和呼叫。
首先編寫乙個dll,它提供乙個加法函式。
使用visual studio新建專案,我把專案命名為adddll,選擇模板windows桌面嚮導-動態鏈結庫,並勾選匯出符號;
專案結構如圖
分別修改 adddll.h 和 adddll.cpp
adddll.h
// 下列 ifdef 塊是建立使從 dll 匯出更簡單的
// 巨集的標準方法。此 dll 中的所有檔案都是用命令列上定義的 adddll_exports
// 符號編譯的。在使用此 dll 的
// 任何專案上不應定義此符號。這樣,原始檔中包含此檔案的任何其他專案都會將
// adddll_api 函式視為是從 dll 匯入的,而此 dll 則將用此巨集定義的
// 符號視為是被匯出的。
#ifdef adddll_exports
#define adddll_api __declspec(dllexport)
#else
#define adddll_api __declspec(dllimport)
#endif
extern
"c" adddll_api int
add(
int,
int)
;
adddll.cpp
// adddll.cpp : 定義 dll 的匯出函式。
//#include
"framework.h"
#include
"adddll.h"
extern
"c" adddll_api int
add(
int a,
int b)
然後生成專案,得到乙個dll檔案。
新建乙個控制台專案去呼叫dll裡提供的函式,注意,dll和exe要放在同一目錄。
#include
#include
intmain()
auto addfunc =
(int(*
)(int,
int)
)getprocaddress
(hmodule,
"add");
std:
:cout <<
addfunc(10
,20)<< std:
:endl;
freelibrary
(hmodule)
;return0;
}
執行結果
msvc編譯的dll可以被mingw的程式呼叫。我在使用httplib庫時,發現msvc可以順利編譯執行,但是mingw則編譯失敗。儘管不是最佳做法,可以考慮使用msvc把第三方庫編譯成dll,然後用mingw呼叫。xd
vs2019如何顯示行數 VS2019 技巧
ps 本文所有示例演示均基於 vs 2019 v16.6.3 版本。1.擴充套件 縮小選區 通過雙擊選中整個單詞,這個操作大家應該都知道。但如何快速選擇幾個單詞 或多個單詞的字串 或 塊呢?教大家乙個快捷鍵,如何快速擴充套件選擇 區域。例如,當游標在乙個字串中時,使用下面的快捷鍵就可以選擇整個字串。...
VS2019 實用設定
本文記錄了 vs2019 預覽版使用過程中的一些設定,這些設定也同樣適用於 vs2017,我們可以根據個人的實際情況進行修改。將滾動條設定為map mode後,則該區域會顯示當前整個檔案的縮略示圖,能夠以不同的顏色顯示當前檔案中的修改狀態 錯誤 警告等資訊,便於對當前檔案有個全域性的認識。在 vs2...
graphics h在VS2019中的使用
visual studio 執行圖形介面是缺少 graphics.h 標頭檔案 方式2 找到本機visual studio 安裝目錄下的 include lib目錄,將解壓後的這兩個檔案內容相對應的拷貝過去。我的電腦預設安裝,這兩個目錄是在這裡 c program files x86 microso...