vc 建立dll檔案以及dll呼叫

2021-04-24 02:11:55 字數 926 閱讀 6747

一、生成dll

1、用vc建立乙個win32dll工程--dlltest,選上「匯出符號」;

2、在dlltest.cpp中編寫匯出函式fun(),這個函式是別的程式要呼叫的函式:

int fun(int i)

3、在dlltest.h中宣告匯出這個函式:

__declspec(dllexport) int fun(int i);

4、第三步也可以用def檔案來指定要匯出的函式,這樣做可以在程式執行過程中顯式的載入dll。關於在程式執行過程中顯式的載入dll見 二、呼叫dll。

新增乙個def檔案到工程,寫入如下內容:

exports

fun5、編譯這個工程,生成dlltest.dll,同時也生成了dlltest.lib檔案。這個檔案是供程式開發用的導入庫。

二、呼叫dll

呼叫dll有兩種方法:

裝載期間動態鏈結--模組可以向呼叫本地函式一樣呼叫從其他模組匯出的函式。裝載期間鏈結必須使用dll的導入庫,也就是.lib檔案。它為系統提供了載入這個dll和定位dll中的匯出函式所需要的資訊。

執行期間動態鏈結--程式執行期間可以使用loadlibrary載入這個dll,然後呼叫getprocaddress函式取得dll匯出函式的位址,然後通過函式位址呼叫dll中的函式。

1、裝載期間動態鏈結。

#include 

#include 

#include "dlltest.h"

//要鏈結到的dlltest.lib庫

#pragma comment(lib,"dlltest.lib")

void main()

2、執行期間動態載入

#include 

#include 

typedef void (*pfun)(int);//宣告函式原型

void main()

在VC中建立DLL檔案

一.win32動態鏈結庫 1.製作的步驟 1 新建win32 dynamic link library工程,工程名為mydll,選擇a dll project型別。2 mydll.h的內容如下 extern c declspec dllexport int sum int a,int b 本文所有的...

visudal studio建立dll與呼叫dll

版本visudal studio 2015 剛剛接觸dll這東西,在建立和使用dll的過程中,踩了不少坑,在度娘裡有各種各樣的方法,但有的地方說得不夠詳細清楚,在綜合各種方法後,我總結了由建立到使用的過程,在這裡我只總結最常用的執行時動態鏈結,靜態的就不多說了,希望對你們有幫助。一 dll建立 這一...

QT調VC的DLL實驗總結

本文主要介紹 如何在qt程式中呼叫vc的dll庫 包括 隱式載入和顯式載入 編譯選項 匯出函式 呼叫約定和錯誤分析。一 開發環境 1,qt5.4.1 mingw compiler,生成caller程式。2,vs2015,生成win32 dll庫。二 隱式載入 1,新建vc的dll 使用vs2015新...