我需要使用由我公司的某个供应商制作的.dll(c ++ 64bit),它们不再存在。我没有头文件(.h)。
我遵循这个:
Get the function prototypes from an unknown .dll
我能够获得函数名称,但我不知道函数返回类型和参数是什么。
我也尝试了依赖性walker,结果相同。
这个dll不是公共dll,它是我们公司定制使用的,所以里面的功能不能在线搜索。
是否有任何工具或方法可以帮助我检索此信息?
答案 0 :(得分:0)
依赖步行者应该适合你。以下概述了函数,返回类型和参数的显示方式:
请记住,您必须为32位或64位dll使用不同版本的依赖性walker。 更重要的是,如果你在函数参数中看到一些奇怪的符号,比如@,#etc ......,那么你就会遗漏一些依赖的dll。
答案 1 :(得分:0)
我需要使用由我公司的某个供应商制作的.dll(c ++ 64bit),它们不再存在。我没有头文件(.h)。
在专业设置中,这是立即使用该库放弃的症状,并查找并使用其他内容。是的,这会花费金钱和时间(因此建议您的经理和/或客户)。您可能更喜欢下次使用某个free software库(因为then您至少可以继续维护该库,即使其供应商已消失)。
您可以认为C ++通常name mangling并尝试reverse-engineer某些内容(但您无法可靠地猜测class
内的字段或其他信息与类型有关)。我不建议尝试,因为这可能需要花费很多时间。金钱,你无法猜到一切(所以你不知道你是否会猜到足够的信息来使用那些东西)。
(你遇到的是一个项目管理不善的错误,而不是开发人员的错误)
使用(甚至几分钟)作为开发人员,没有完整标题和文档的C ++库只是 crazy 。 不要这样做。
因此,您的问题没有技术解决方案。 Decompilation通常是不可能的(费用很高,通常效果不好)