最近學習用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檔...