时间:2021-05-19
之前有人问过ViewDLL这些软件在哪下载。实际上使用VS就可以查看DLL的导出接口。
1.先打开VS内部的Power Shell
2.打开以后应该如下图所示,首先输入dumpbin查看下用法:
3.使用 /Exports 参数查看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的导出函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
vs2019已经在4月2日正式发布,vs2019发布会请看这个链接:vs2019发布活动vs2019和vs2017一样强大,项目兼容,不用互相删除,而且C/C+
一、下载vs2019和qt(关于vs2019的配置方法不在赘述,上一篇已经讲解了,点击传送门)1、下载vs2019,直接在官网点击下载即可,是免费的。2、下载q
一、VS的开发环境首先你得安装了vs2019,然后确认下下面三个组件是否存在,如果没有要下载一下。vs2019的安装可参考visualstudio2019的安装
VS2019打包WPF安装程序最新教程,使用VisualStudio2019开发的WPF程序如果想要打包为安装程序,除了在VS2019找到WPF项目类库直接右键
在vs2019版本中如果使用strcpy()与strcat()都会警告大意说这个strcpy()因为空间分配的这个函数不安全不建议用这个函数,strcat()也