国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++生成dll和調用dll實例代碼

2020-02-24 14:37:08
字體:
來源:轉載
供稿:網友

這篇文章將給各位講述如何利用c++制作dll并調用dll,用一個簡單的加法函數來作為演示,需要的朋友可以參考借鑒,下面來一起看看C++++生成dll和調用dll實例代碼吧。

1)生成dll

建立兩個文件 xxx.h , xxx.cpp

xxx.h內容如下:

#ifdef BUILD_XXX_DLL
#define EXPORT __declspec(dllexport)
#else
#define EXPORT __declspec(dllimport)
#endif

extern "C"{
EXPORT void example(void);
... ...
}

xxx.cpp內容如下:

#define BUILD_XXX_DLL
#include "xxx.h"

void example(void)
{
}
... ...

然后從DOS控制臺進行編譯(假設已經安裝mingw并加入環境變量)
g++ -shared -Wl,--kill-at,--output-def,xxx.def -o xxx.dll xxx.cpp

(因為C++通過修飾函數名來實現函數重載,所以我們要用extern "C"配合--kill-at編譯選項來避免對函數名的修正,BUILD_XXX_DLL宏的作用是用來選擇函數原型聲明的作用)

2)靜態調用dll

在新文件yyy.cpp里加入如下內容;
#include "xxx.h"
#pragma comment(lib,"xxx.dll")

生成的dll不需要def文件和cpp文件也可以
不包含xxx.h的話,需要把h文件內的函數原型聲明添加進yyy.cpp

編譯時需要加入dll,類似這樣:
g++ -L. -o yyy.exe yyy.cpp xxx.dll

3)動態調用dll

首先,你需要包含windows.h
#include

你還需要一個句柄保存裝入的dll文件
HINSTANCE hDll=LoadLibrary("xxx.dll");

聲明所需函數的對應函數指針類型
typedef void (*pfunc)(void);

獲得指向函數的函數指針
pfunc pf=(pfunc*)GetProcAddress(hDll,"example");

使用完畢后,要釋放dll文件
FreeLibrary(hDll);

以上就是C++生成dll和調用dll實例代碼,更多精彩內容,盡在https://js.Vevb.com。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宣武区| 蓝田县| 古交市| 曲周县| 闽清县| 阿拉尔市| 临海市| 浦东新区| 买车| 永仁县| 沁源县| 双鸭山市| 高邑县| 海晏县| 青神县| 昭觉县| 祁阳县| 泽州县| 武威市| 抚远县| 内丘县| 寿宁县| 沐川县| 湾仔区| 桐乡市| 阳新县| 民乐县| 阿合奇县| 柏乡县| 施甸县| 黔西县| 吴江市| 沛县| 共和县| 福安市| 遵义县| 曲水县| 罗定市| 琼结县| 盐源县| 石城县|