dll(學習筆記)

2021-06-04 23:03:40 字數 1027 閱讀 8062

dll的基礎知識

(複習一以前的知識)

dllmain()匯入函式。(僅有匯出資源的dll可以沒dllmain函式)

bool apientry dllmain( hmodule hmodule,        dword  ul_reason_for_call,      lpvoid lpreserved)

dll匯出函式的方式:*.def檔案或_declspec(dllexport)關鍵字:

①*.def 檔案必須至少包含下列模組定義語句:

■檔案中的第乙個語句必須是 library 語句。此語句將 .def 檔案標識為屬於 dll。library 語句的後面是 dll 的名稱。鏈結器將此名稱放到 dll 的導入庫中。

■exports 語句列出名稱,可能的話還會列出 dll 匯出函式的序號值。通過在函式名的後面加上 @ 符和乙個數字,給函式分配序號值。當指定序號值時,序號值的範圍必須是從 1 到 n,其中 n 是 dll 匯出函式的個數。

■注釋語句,在語句前面加分號 「;」 。

例如:;dlltest.def : declares the module parameters for the dll.

library   "dlltest"

exports

add   @1

fun   @2

②_declspec(dllexport) 匯出方式:

為了防止名字改編,將 extern "c" _declspec(dllexport) 語句放在想要匯出函式的宣告前面;

例如:extern "c" _declspec(dllexport) int add(int a, int b);

備註◆:,可以利用depends工具(vc6.0中有)檢視一下所生成的dll,看看匯出函式是否成功

dll函式匯出的方法顯示連線和隱式連線

if (pdec)

freelibrary(hmod);

}

DLL學習筆記

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

DLL學習筆記

程序空間 declspec dllexport lib檔案 def檔案 名稱改編問題 匯入段 編譯工具 stdcall winapi 執行可執行模組 執行乙個可執行模組的時候,系統的引導程式,1,為程序建立虛擬位址空間 2,把可執行模組對映到位址空間 3,檢查匯入段 4,搜尋dll 搜尋順序 包含可...

學習開發DLL筆記

最近學習用vc來開發win32 dll,學了這幾天,來作個總結。一 生成dll 1 用vc建立乙個win32dll工程 dlltest,選上 匯出符號 2 在dlltest.cpp中編寫匯出函式 fun 這個函式是別的程式要呼叫的函式 int fun int i 3 在dlltest.h中宣告匯出 ...