91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解VS2019 dumpbin查看DLL的導出函數

發布時間:2020-09-06 17:14:17 來源:腳本之家 閱讀:515 作者:Mr_L_Y 欄目:開發技術

之前有人問過ViewDLL這些軟件在哪下載。實際上使用VS就可以查看DLL的導出接口。

1.先打開VS內部的Power Shell

詳解VS2019 dumpbin查看DLL的導出函數

2.打開以后應該如下圖所示,首先輸入dumpbin查看下用法:

詳解VS2019 dumpbin查看DLL的導出函數

3.使用 /Exports 參數查看DLL的導出函數符號

詳解VS2019 dumpbin查看DLL的導出函數

順便再講下關于調用約定和函數符號的關系,即_stdcall,_cdecl.還有就是extern "c"對函數名符號的影響。

上面的Dll1.dll的導出頭文件如下:

#pragma once

extern "C" {
	//extern "C" + _stdcall,函數導出符號為 _CreateNativeManager@0 : _+函數名+@+傳參字節數
	//由于_stdcall是被調用方清理堆棧,所以函數符號里面包含了傳參的信息
	_declspec(dllexport) NativeManager* _stdcall CreateNativeManager();
	_declspec(dllexport) void _stdcall ReleaseNativeManager();
	_declspec(dllexport) void(_stdcall ExSetLogHandler)(LogHandler handler);
	//extern "C" + _cdecl,函數導出符號為 ReleaseNativeManager2 : 函數名 
	//由于_cdecl是調用方清理堆棧,所以只需要函數名就可以
	_declspec(dllexport) void(_cdecl ReleaseNativeManager2)();
}
//不使用extern的情況下,是C++的導出方式,函數符號如下:
//?ReleaseNativeManager1@@YGXH@Z : ?+函數名+@@YG+返回類型+參數1類型...+@Z 
//如果是_cdecl @YG變為@YA
//如果沒有參數即參數為void,則以Z結尾,例如:
//?ReleaseNativeManager3@@YAXXZ : ?+函數名+@@YA+返回類型+XZ
//以上 X表示 void類型,H表示int參數類型
_declspec(dllexport) void(_stdcall ReleaseNativeManager1)(int num);
_declspec(dllexport) void(_cdecl ReleaseNativeManager3)();

如果導入dll時發現沒有找到該函數,要根據dll的導出約定方式設置對應的導入方式,否則雖然函數名一樣但實際上符號是不同的。

到此這篇關于詳解VS2019 dumpbin查看DLL的導出函數的文章就介紹到這了,更多相關dumpbin查看DLL的導出函數內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

斗六市| 博爱县| 太仆寺旗| 八宿县| 双辽市| 台南市| 昆明市| 曲水县| 鹰潭市| 镶黄旗| 旺苍县| 鄢陵县| 文安县| 白朗县| 涿鹿县| 商洛市| 锡林郭勒盟| 宜兰县| 玛多县| 台前县| 琼结县| 武威市| 义乌市| 咸丰县| 会理县| 邛崃市| 华池县| 军事| 大兴区| 哈尔滨市| 满洲里市| 丰顺县| 苍山县| 宜都市| 扬州市| 通化县| 河间市| 六安市| 札达县| 怀化市| 徐水县|