最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++生成dll和調(diào)用dll的方法實例

 更新時間:2013年03月07日 12:00:15   作者:  
C++生成dll和調(diào)用dll的方法實例,需要的朋友可以參考一下

本人根據(jù)網(wǎng)絡(luò)多個相關(guān)博客帖子原創(chuàng)

1)生成dll

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

xxx.h內(nèi)容如下:

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

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

xxx.cpp內(nèi)容如下:

#define BUILD_XXX_DLL
#include "xxx.h"

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

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

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

2)靜態(tài)調(diào)用dll

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

生成的dll不需要def文件和cpp文件也可以
不包含xxx.h的話,需要把h文件內(nèi)的函數(shù)原型聲明添加進(jìn)yyy.cpp

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

3)動態(tài)調(diào)用dll

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

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

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

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

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

相關(guān)文章

  • 利用C++編寫簡易寶可夢對戰(zhàn)小游戲

    利用C++編寫簡易寶可夢對戰(zhàn)小游戲

    本文利用C++語言編寫了一個小時候課間嘴上玩的那種寶可夢游戲,只有早期的三個寶可夢和基礎(chǔ)招式,感興趣的朋友快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • c++算法進(jìn)階刪除有序鏈表中的重復(fù)元素

    c++算法進(jìn)階刪除有序鏈表中的重復(fù)元素

    這篇文章主要為大家介紹了c++算法進(jìn)階刪除有序鏈表中的重復(fù)元素示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 提高C++程序運行效率的10個簡單方法

    提高C++程序運行效率的10個簡單方法

    這篇文章主要介紹了提高C++程序運行效率的10個簡單方法,包括了循環(huán)、變量、繼承等等應(yīng)用的技巧,非常具有實用價值,需要的朋友可以參考下
    2014-09-09
  • C 語言指針概念的詳解

    C 語言指針概念的詳解

    這里主要介紹C 語言指針,這里整理了詳細(xì)的資料,對指針做了詳細(xì)說明及簡單示例代碼幫助大家理解什么是指針,有興趣的小伙伴可以參考下
    2016-08-08
  • 深入解析C++編程中基類與基類的繼承的相關(guān)知識

    深入解析C++編程中基類與基類的繼承的相關(guān)知識

    這篇文章主要介紹了C++編程中基類與基類的繼承的相關(guān)知識,包括多個基類繼承與虛擬基類等重要知識,需要的朋友可以參考下
    2016-01-01
  • 記逆向小白的第一次vbsedit 9爆破及內(nèi)存補丁制作過程

    記逆向小白的第一次vbsedit 9爆破及內(nèi)存補丁制作過程

    這篇文章主要介紹了記逆向小白的第一次vbsedit 9爆破及內(nèi)存補丁制作過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 詳細(xì)分析Android中實現(xiàn)Zygote的源碼

    詳細(xì)分析Android中實現(xiàn)Zygote的源碼

    這篇文章主要介紹了詳細(xì)分析Android中實現(xiàn)Zygote的源碼,包括底層的C/C++代碼以及Java代碼部分入口,需要的朋友可以參考下
    2015-07-07
  • C語言實現(xiàn)像素鳥游戲

    C語言實現(xiàn)像素鳥游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)像素鳥游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C語言攝氏度互相轉(zhuǎn)換華氏

    C語言攝氏度互相轉(zhuǎn)換華氏

    這篇文章主要介紹了C語言攝氏度互相轉(zhuǎn)換華氏,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • OpenCV霍夫變換(Hough Transform)直線檢測詳解

    OpenCV霍夫變換(Hough Transform)直線檢測詳解

    這篇文章主要為大家詳細(xì)介紹了OpenCV霍夫變換直線檢測的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12

最新評論

呈贡县| 嘉兴市| 喀喇沁旗| 北票市| 同德县| 米脂县| 吉木乃县| 正宁县| 浏阳市| 柳州市| 塔城市| 化隆| 惠安县| 大足县| 洪雅县| 苏尼特右旗| 元氏县| 东海县| 都安| 永济市| 赤峰市| 房产| 图片| 航空| 离岛区| 普宁市| 金乡县| 萨迦县| 广州市| 鄱阳县| 葵青区| 鹿邑县| 扶余县| 博湖县| 德安县| 镇原县| 滕州市| 紫阳县| 廊坊市| 梅河口市| 霍城县|