天天看點

C/C++dll的簡單建立與兩種調用 全篇無廢話

dll的建立

我說的結論都是自己試驗過的,但還是帶有偶然性,中途大家不信的地方可以自己試試,我有寫錯的地方請提醒我,看到會回複

一、随便建立項目

改項目屬性:配置屬性->正常->配置類型為dll

C/C++dll的簡單建立與兩種調用 全篇無廢話

二、建立一個.c(或者.cpp) 和.h檔案(源檔案和頭檔案的名字不一樣不要緊)

.c檔案

必須包含.h檔案(不包含的話,可以成功生成dll,但是在其他項目中不能用,可以自己試一試)

和平常一樣寫函數,下面是例子随便舉得,傳回值以及參數根據自己的需要寫

void function1( ) {};
void function2( ) {};
......
           

.h檔案

聲明一下函數就可以了,有多少聲明多少個

__declspec(dllexport) void function1( );
__declspec(dllexport) void function2( );
......
           

這樣做的dll,在其他的程式不管是c++還是c都是可以使用的,兩種方法都可以,具體使用方法看後面。這時不能加,也加不了extern “C”,加了就無法通過編譯

如果你上面選用的是.cpp, 則需要加上一個extern “C”,否則不管其他的程式是c++還是c,都用不了這個dll

extern "C"
__declspec(dllexport) void function1( );
__declspec(dllexport) void function2( );
           

三、dll是不能運作的,點生成就行了

項目檔案夾裡面會出現兩個重要的東西分别是.lib 和.dll,别忘了上面的.h檔案也很重要

dll的靜态使用

一、把.h .dll .lib複制到要用的項目下

二、.h添加到頭檔案 ,再#include這個頭檔案

三、.lib添加間到資源檔案,或者

改項目屬性:配置屬性->連結器->輸入->附加依賴項,在這個裡面添加lib的名字,這裡不要畫蛇添足不需要寫路徑,因為第一步已經把這些東西複制到項目檔案夾中了

C/C++dll的簡單建立與兩種調用 全篇無廢話

四、已經可以使用自己制作的dll中的函數了

dll的動态使用

一、把 .dll 複制到要用的項目下

二、加載dll,通過函數名獲得自己要用的函數的位址,通過函數指針使用要用的函數

#include <Windows.h>
HINSTANCE hLibrary=LoadLibrary(L"      .dll");
void (*p)() = GetProcAddress(hLibraray, "a");//a表示函數名
a();//p是a的函數指針,a這個例子,無傳回類型,無參數
           

三、解除安裝dll

繼續閱讀