详解VS2019 dumpbin查看DLL的导出函数(dll,dumpbin,vs2019,开发技术)

时间:2024-05-05 08:48:07 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

之前有人问过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 onceextern "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的导出函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:详解VS2019 dumpbin查看DLL的导出函数的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:JAVASE中数据类型,变量定义及使用的示例分析下一篇:

5 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18