详解VS2019 dumpbin查看DLL的导出函数

详解VS2019 dumpbin查看DLL的导出函数

本文主要介绍VS2019 dumpbin视图DLL的导出功能的详细说明。文章通过示例代码非常详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友就跟着下面的边肖学习吧。

之前有人问ViewDLL在哪里下载这些软件。其实可以用VS查看DLL的导出接口。

1.先打开VS里面的动力壳。

2.打开后,应该如下图所示。首先,输入dumpbin来检查用法:

3.使用/Exports参数查看DLL的导出函数符号。

顺便说一下调用约定和函数符号的关系,即_stdcall,_cdecl。以及extern c 对函数名符号的影响。

上述Dll1.dll的导出头文件如下:

#杂注一次

外部 C {

//extern C _stdcall,函数导出符号为_ CreateNativeManager @ 0:_ function name @传递的字节数。

//因为_stdcall是被调用者清零的堆栈,所以函数符号中包含了参数传递的信息。

_ declspec(dll export)native manager * _ stdcall CreateNativeManager();

_ declspec(dll export)void _ stdcall ReleaseNativeManager();

_ declspec(dll export)void(_ stdcall ExSetLogHandler)(log handler处理程序);

//extern C _cdecl,函数导出符号为ReleaseNativeManager2:函数名。

//由于_cdecl是调用者的清理堆栈,所以只需要函数名。

_ declspec(dll export)void(_ cdecl releasenativemanager 2)();

}

//不使用extern,是c的导出方法,函数符号如下:

//?ReleaseNativeManager1@@YGXH@Z:函数名@@YG返回类型参数1 type.@Z

//如果是_cdecl @YG,就变成@YA

//如果没有参数,即参数为void,则以Z结尾,例如:

//?ReleaseNativeManager3@@YAXXZ:函数名@@YA返回类型XZ。

//上面的X表示void类型,H表示int参数类型

_ declspec(dll export)void(_ stdcall releasenativemanager 1)(int num);

_ declspec(dll export)void(_ cdecl releasenativemanager 3)();

如果在导入dll时发现没有找到函数,应该根据dll的导出约定设置相应的导入方法。否则,虽然函数名称相同,但符号实际上是不同的。

关于VS2019 dumpbin查看DLL的导出函数的详细说明本文到此为止。有关dumpbin查看DLL的导出功能的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

详解VS2019 dumpbin查看DLL的导出函数