gpt4 book ai didi

c++ - 从 C++ 中的 Dll 中提取

转载 作者:行者123 更新时间:2023-11-30 04:23:39 25 4
gpt4 key购买 nike

我有一个名为 Lib.ddl 的 DLL。在 dll 中,我有一个名为 add 的函数,它接受一个整数作为参数。

使用 Windows API 并使用以下类。

class WindoswAPI
{
public:
WindowsAPI();//constructor
//helper functions
~WindowsAPI();
private:
}

如何在类的构造函数中加载这个库。通过辅助函数提取函数,并在析构函数中卸载函数?我在互联网上寻找解决方案和帮助,但找不到。

最佳答案

你应该先看看LoadLibraryEx()为了在你的进程中加载​​dll,你可以使用GetProcAddress()通过名称获取指向函数的指针。请注意,从第二个函数请求的 HMODULE 参数由第一个函数返回。您必须仔细了解函数签名才能在不导致 GPF 的情况下调用它,因此如果您必须在它运行之前进行一些调试,请不要感到惊讶。无论如何,首先要检查的是两个函数的返回值:第一个应该返回不同于零的值(它实际上返回加载 dll 的虚拟地址),如果它返回 NULL,请使用GetLastError有一些提示。对于 GetProcAddress 也是一样,如果它返回零,则表示没有工作,通常是函数名称的拼写错误。正如我之前所说,从 GetProcAddress 返回地址并不能保证您已经完成:您必须完全知道如何调用该函数。如果您需要帮助来发现从 dll 中公开了哪些名称,您会发现有用的 DUMPBIN.EXE ,您应该已经可以从 Visual Studio 工具命令提示符获得它。当您的代码完成 dll 时,您可以尝试使用 FreeLibrary() 卸载它。 .

关于c++ - 从 C++ 中的 Dll 中提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13249875/

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