C++中调用DLL中的函数的两种方式
生活随笔
收集整理的這篇文章主要介紹了
C++中调用DLL中的函数的两种方式
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、DLL源文件:
extern "C" __declspec(dllexport) int add(int a, int b) {return a + b; }二、靜態(tài)調(diào)用:
#pragma comment(lib, "DemoDLL.lib") extern "C" int add(int a, int b);using namespace std;// 靜態(tài)調(diào)用DLL庫 int static_call(int a, int b) {return add(a, b); }三、動(dòng)態(tài)調(diào)用:
// 動(dòng)態(tài)調(diào)用DLL庫 int dynamic_call(int a, int b) {typedef int(*AddFunc)(int, int);HMODULE module = LoadLibrary(L"DemoDLL.dll");if (module == NULL){cout << "加載DemoDLL.dll動(dòng)態(tài)庫失敗" << endl;return -1;}AddFunc add = (AddFunc)GetProcAddress(module, "add");return add(a, b); }四、完整調(diào)用代碼:
#include <sstream> #include <iomanip> #include <iostream> #include <Windows.h>#pragma comment(lib, "DemoDLL.lib") extern "C" int add(int a, int b);using namespace std;// 靜態(tài)調(diào)用DLL庫 int static_call(int a, int b) {return add(a, b); }// 動(dòng)態(tài)調(diào)用DLL庫 int dynamic_call(int a, int b) {typedef int(*AddFunc)(int, int);HMODULE module = LoadLibrary(L"DemoDLL.dll");if (module == NULL){cout << "加載DemoDLL.dll動(dòng)態(tài)庫失敗" << endl;return -1;}AddFunc add = (AddFunc)GetProcAddress(module, "add");return add(a, b); }int main() {int n = 100, m = 200;cout << static_call(m, n) << endl;cout << dynamic_call(m, n) << endl;return 0; }總結(jié)
以上是生活随笔為你收集整理的C++中调用DLL中的函数的两种方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年高考,26地公布高考出分时间
- 下一篇: 天马行空W:在C++中调用DLL中的函数