dll載入失敗

2021-06-06 16:40:19 字數 338 閱讀 3673

dll中的函式載入失敗多數是由於定義的輸出函式名有問題,我遇到過這樣的問題。

你查一下dll的原始碼,採用__stdcall輸出

你可以編寫.def檔案,定義輸出函式。

將dll編譯鏈結,生成dll檔案,雙擊開啟,檢視其中的輸出函式名。如果設定不對,也許你會見到函式名前加下劃線,按標準c輸出的函式名,是不應該帶有下劃線的。

當你載入動態庫時,注意指定的函式名,即loadlibrary的第二個引數,按標準c輸出的函式可以引用函式名,否則是乙個內部的名稱,帶有@指定序號的乙個怪名字。

在dll中設定斷點,單步跟蹤,看看在那裡出錯,輸出了什麼函式名。

個人的一點小建議,祝你好運。

靜態載入dll和動態載入dll

一,首先編寫dll 建win32空dll工程 標頭檔案.h extern c declspec dllexport int max int a,int b extern c 解決函式名由於不同編譯器造成的名字匹配問題,通常c 編譯器編譯時會對函式進行改名,而c編譯器不會 extern c decls...

靜態載入dll和動態載入dll

一,首先編寫dll 建win32空dll工程 標頭檔案.h extern c declspec dllexport int max int a,int b extern c 解決函式名由於不同編譯器造成的名字匹配問題,通常c 編譯器編譯時會對函式進行改名,而c編譯器不會 extern c decls...

VC靜態載入DLL和動態載入DLL

a.dll 和a.lib 兩個檔案都有的話可以用靜態載入的方式 message 函式的宣告你應該知道吧,把它的宣告和下面的語句寫到乙個標頭檔案中 pragma comment lib,a.lib 然後你的對話方塊 cpp 中包含這個標頭檔案就可以使用 message 函式了。如果dll 沒有對應的 ...