当前位置:  开发笔记 > 编程语言 > 正文

获取DLL中导出函数的签名

如何解决《获取DLL中导出函数的签名》经验,为你挑选了1个好方法。

是否可以从DLL获取导出的(C样式?)函数的签名(参数计数/类型,返回类型)?我可以使用DLL导出查看器查看函数名称,地址,序数等列表,但我无法查看签名.我只有dll文件,没有.h和.def文件.

更新:使用一个名为API Monitor的工具,我可以附加到使用上述dll的进程并查看对函数的调用.这让我可以看到参数的数量,返回值及其整数值(指针?),但这并没有多大帮助.我可能应该找到一种方法来确定这些指针在调用时指向的结构类型.



1> Rob Kennedy..:

DLL不存储它们导出的函数的签名.其他答案提到了C++,当C++函数导出为C++时,名称确实会被破坏.使用正确的编译器修改方案对其进行解码,您将获得签名.但是大多数DLL都不使用C++名称导出C++函数.相反,DLL选择导出的函数使用C样式名称导出,因此即使DLL是用C++编写的,导出的函数仍然不会有任何签名信息.

你没有标题?大多数供应商都在他们的SDK中包含这类内容.如果你没有得到一个,那就向卖主抱怨.如果你不应该得到一个,那么也许你会以错误的方式处理你的任务; 你确定你应该直接使用那个DLL吗?

如果您没有头文件,那么您可能还会问自己,无论如何,您是否真的允许在程序中使用DLL.如果它只是您在系统上找到的任意DLL,那么即使您可以为其编写代码,也可能不允许在发运程序时重新分发它.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有