詳解VS2019dumpbin查看DLL的導(dǎo)出函數(shù)-創(chuàng)新互聯(lián)

之前有人問(wèn)過(guò)ViewDLL這些軟件在哪下載。實(shí)際上使用VS就可以查看DLL的導(dǎo)出接口。

目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、廣平網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

1.先打開(kāi)VS內(nèi)部的Power Shell

詳解VS2019 dumpbin查看DLL的導(dǎo)出函數(shù)

2.打開(kāi)以后應(yīng)該如下圖所示,首先輸入dumpbin查看下用法:

詳解VS2019 dumpbin查看DLL的導(dǎo)出函數(shù)

3.使用 /Exports 參數(shù)查看DLL的導(dǎo)出函數(shù)符號(hào)

詳解VS2019 dumpbin查看DLL的導(dǎo)出函數(shù)

順便再講下關(guān)于調(diào)用約定和函數(shù)符號(hào)的關(guān)系,即_stdcall,_cdecl.還有就是extern "c"對(duì)函數(shù)名符號(hào)的影響。

上面的Dll1.dll的導(dǎo)出頭文件如下:

#pragma once

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

標(biāo)題名稱:詳解VS2019dumpbin查看DLL的導(dǎo)出函數(shù)-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://muchs.cn/article18/ddsddp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司做網(wǎng)站、網(wǎng)站建設(shè)、微信小程序、動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名