gpt4 book ai didi

c++ - 在 Win32 C++ 中调用未导出的函数

转载 作者:太空狗 更新时间:2023-10-29 23:48:21 27 4
gpt4 key购买 nike

我将如何在 Win32 C++ 中调用未导出的函数?

最佳答案

调用与您的代码在同一模块 (DLL/EXE) 中定义的未导出函数很容易:只需像调用任何其他 C++ 函数一样调用它们。显然这不是你要问的。如果你想在不同的模块中调用未导出的函数,你需要以某种方式找出它们的地址。

一种方法是让第一个模块调用第二个模块中的导出函数,该函数返回一个函数指针。 (或者:包含函数指针的结构、指向类实例的指针等)想想工厂模式。

另一种方法是从第一个模块导出一个注册函数,让第二个模块的初始化代码调用它,将指向未导出函数的指针以及某种识别信息传递给它。 (最好也有相应的注销函数,在第二个模块卸载前调用。)

还有一种方法是使用 dbghelp.dll 调试调试符号。不建议将此用于实际应用程序,因为它需要分发调试符号并且速度非常慢,更不用说过于复杂了。

关于c++ - 在 Win32 C++ 中调用未导出的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1344629/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com