gpt4 book ai didi

c++ - 使用 ACE_Service_Object

转载 作者:太空宇宙 更新时间:2023-11-04 03:07:57 28 4
gpt4 key购买 nike

我正在尝试使用 ACE_Service_Object 或 ACE_Shared_Object。我不确定哪一个适用。我试图将一些功能封装在 DLL 中,这样 DLL 的使用者将打开库,创建导出类的实例,调用类上的一些函数,然后销毁类。一种基本的插件架构。使用 ACE 类解决此问题的最佳方法是什么。它们似乎包装了很多 DLL 加载、查找和卸载细节,使用起来会很好。

下面的代码基本上是我想使用 ACE 类模拟的代码。

void* handle = dlopen("./libdllbaseclass.so", RTLD_LAZY);

DllBaseClass* (*create)();
void (*destroy)(DllBaseClass*);

create = (DllBaseClass* (*)())dlsym(handle, "create_object");
destroy = (void (*)(DllBaseClass*))dlsym(handle, "destroy_object");

DllBaseClass* myClass = (DllBaseClass*)create();
myClass->DoSomething();
destroy( myClass );

最佳答案

如果您只需要加载、卸载和调用共享库中的某些函数,您可以改用 ACE_DLL 类。这就是 ACE_Shared_Object 最终在幕后使用的内容。

关于c++ - 使用 ACE_Service_Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2405731/

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