如何从只有函数名的 DLL 中调用函数? C++
How to call function from DLL with only function name ? C++
是否可以在不知道函数原型的情况下从 DLL 文件中调用函数?我尝试使用 pe-parser 库从 DLL 文件中提取所有导出的函数,但我只有函数名称,我不知道函数 input/output。有什么解决方案可以从 dll 文件中找到导出的函数 input/output 吗?或者在不知道函数原型的情况下调用函数?
TL;DR - 编号
为了正确调用函数,您需要知道函数原型。它通常在 DLL 附带的 h 文件中提供。
您可以尝试对 DLL 进行逆向工程以找出原型,但此信息不是 PE 文件的一部分。
如果您有 PDB 文件,您可以从中提取相关信息。参见 this answer。
我不明白为什么大家会感到惊讶,这是很正常的问题。
有一个程序,由 Steve P.Miller 命名为“Dependency walker”:https://www.dependencywalker.com/
该程序曾经与 Windows SDK 一起分发,但在某些时候微软决定忘记它。我还在用这个程序。
我用的是2.2.6000版本,2006年10月29日建的,完全没问题。
是否可以在不知道函数原型的情况下从 DLL 文件中调用函数?我尝试使用 pe-parser 库从 DLL 文件中提取所有导出的函数,但我只有函数名称,我不知道函数 input/output。有什么解决方案可以从 dll 文件中找到导出的函数 input/output 吗?或者在不知道函数原型的情况下调用函数?
TL;DR - 编号
为了正确调用函数,您需要知道函数原型。它通常在 DLL 附带的 h 文件中提供。
您可以尝试对 DLL 进行逆向工程以找出原型,但此信息不是 PE 文件的一部分。
如果您有 PDB 文件,您可以从中提取相关信息。参见 this answer。
我不明白为什么大家会感到惊讶,这是很正常的问题。 有一个程序,由 Steve P.Miller 命名为“Dependency walker”:https://www.dependencywalker.com/ 该程序曾经与 Windows SDK 一起分发,但在某些时候微软决定忘记它。我还在用这个程序。
我用的是2.2.6000版本,2006年10月29日建的,完全没问题。