gpt4 book ai didi

c++ - DLL 需要访问其应用程序的符号

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

在 C++ 中,DLL 是否可以访问加载它的应用程序的某些符号?我有一个加载插件 (dll) 的应用程序,这些插件需要访问应用程序的某些 API。

是否可以在不创建共享此 API 的新 DLL 的情况下实现此目的?

函数指针结构是否适合这种情况?

示例:宿主应用程序中定义的 bool Log(char*) 函数和需要记录一些事件的插件。

最佳答案

另一项投票是将回调接口(interface)传递到插件 DLL 中。 IE。回调接口(interface)...

class IHostApplication
{
public:
virtual bool Log(const wchar_t* ip_log_string) = 0;
};

DLL插件接口(interface)

class IPlugin
{
public:
virtual void InitializePlugin(IHostApplication *ip_host) = 0;
};

宿主会加载插件 DLL(必要时动态加载),然后将自身作为 IHostApplication* 传递给插件,启用您可能需要的任何回调。

关于c++ - DLL 需要访问其应用程序的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4429141/

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