前言:首先做一些基礎操作,新建一個dll文件
1.先新建項目–>win 32項目(比如命名為testDLL)–>dll(選中空項目)–>完成。
2.新建一個文件,命名為Add.cpp,完成如下代碼:
#define DLLEXPORT extern "C" __declspec(dllexport) DLLEXPORT int sum(int a, int b) { return a + b; }
3.新建一個頭文件
int sun(int,int);
1.動態調用dll庫
1.1新建一個控制台程序-> 空項目
1.2添加cpp和dll文件進入工程或者在工程屬性->VC++目錄->添加dll文件的目錄(大概是哪個都行)
1.3工程屬性->常規->字符集->使用多字節字符集
1.4 在cpp文件中寫入demo
#include <iostream> #include <windows.h> /* Windows頭文件中包含可以加載DLL的函數。 */ typedef int(*ptrSub)(int, int); /* 在調用DLL函數之前,要定義函數指針,用來調用函數。 可以看出,函數指針的類型與DLL中的要一致。 */ HMODULE hMod = LoadLibrary("testDLL.dll"); /* 調用LoadLibrary函數加載DLL文件。加載成功,hMod指針不為空。 這里也可以是一個地址加文件名 */ int main() { if (hMod != NULL) { /* 如果加載成功,則可通過GetProcAddress函數獲取DLL中需要調用的函數的地址。 獲取成功,sum指針不為空。 */ ptrSub sum = (ptrSub)GetProcAddress(hMod, "sum"); if (sum != NULL) { std::cout << "10 + 6 = " << sum(10, 6) << std::endl; /*獲取地址成功后,通過sum調用函數功能。*/ } FreeLibrary(hMod); /*在完成調用功能后,不在需要DLL支持,則可以通過FreeLibrary函數釋放DLL。*/ } }
