[英]Cross-Platform C++ Dynamic Library Plugin Loader
我只是想知道我对使用共享库动态加载插件的跨平台实现的选择。 到目前为止,我发现的唯一一个是:
而我只是想知道我是否有其他选择? 本质上,我希望能够将插件放在共享对象文件中,并在运行时加载它们,我希望以跨平台的C ++方式实现。
您可以查看Boost Extension,但尚未被Boost接受。
Boost.Extension库的开发旨在简化使用共享库的插件和类似软件扩展的开发。 可以从共享库中获取类,函数和数据,并由应用程序加载。
如果你想要简单轻巧的东西,请尝试: https : //pocoproject.org/docs/package-Foundation.SharedLibrary.html
使用SharedLibrary类需要三行来调用C共享库中的函数:
Poco::SharedLibrary lib("libfoo.so");
int (* foo)(int) = reinterpret_cast<int (*)(int)>(lib.getSymbol("foo"));
printf("answer %d\n", foo(5));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.