是否可以从 DLL 获取导出(C 风格?)函数的签名(参数计数/类型、返回类型)?我可以查看函数名称、地址、序号等的列表DLL 导出查看器 http://www.nirsoft.net/utils/dll_export_viewer.html但我看不到签名。我只有 dll 文件,没有 .h 和 .def 文件。
UPDATE:使用一个名为API监控器 http://www.apimonitor.com/,我可以附加到使用上述 dll 的进程并查看对函数的调用。这让我可以看到参数的数量、返回值及其整数值(指针?),但这并没有多大帮助。我可能应该找到一种方法来确定这些指针在调用时指向的结构类型。
DLL 不存储它们导出的函数的签名。其他答案提到了 C++,以及何时导出 C++ 函数as C++,那么这个名字确实会被破坏。使用正确的编译器的损坏方案对其进行损坏,您将获得签名。但大多数 DLL 不使用其 C++ 名称导出 C++ 函数。相反,DLL 选择导出的函数是使用 C 样式名称导出的,因此即使 DLL 是用 C++ 编写的,导出的函数仍然不会有任何签名信息。
你没有标题吗?大多数供应商都在他们的 SDK 中包含了此类内容。如果您没有收到,请向供应商投诉。如果你不应该得到一个,那么也许你以错误的方式完成你的任务;你确定你应该直接使用那个DLL吗?
如果您没有头文件,那么您可能还会问自己是否真的合法地允许您在程序中使用 DLL。如果它只是您在系统上找到的任意 DLL,那么即使您可以为其编写代码,在发布程序时也可能不允许重新分发它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)