使用vs2019編寫dll

2021-10-05 02:25:22 字數 1747 閱讀 2438

本文通過乙個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...