學習開發DLL筆記

2021-04-08 20:59:44 字數 1018 閱讀 3988

最近學習用vc來開發win32 dll,學了這幾天,來作個總結。

一、生成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學習筆記

1.在vs2005中建立win32 dynamic link library的方法 檔案 新建 專案 visual c win32 win32專案,進入win32應用程式嚮導,在應用程式設定的應用程式型別中選擇 dll d 一般還要在附加選項中勾選 空專案 2.在vs2005中新增dll的方法 1 ...

DLL學習筆記

讀win32 dll 在dll 中,必須顯示生命匯出函式,類似這樣 extern c declspec dllexport void myfunction int n 在客戶方面,必須宣告對應的匯入函式,類似這樣 extern c declspec dllimport void myfunction...

dll(學習筆記)

dll的基礎知識 複習一以前的知識 dllmain 匯入函式。僅有匯出資源的dll可以沒dllmain函式 bool apientry dllmain hmodule hmodule,dword ul reason for call,lpvoid lpreserved dll匯出函式的方式 def檔...