簡體   English   中英

跨平台C ++動態庫插件加載器

[英]Cross-Platform C++ Dynamic Library Plugin Loader

我只是想知道我對使用共享庫動態加載插件的跨平台實現的選擇。 到目前為止,我發現的唯一一個是:

而我只是想知道我是否有其他選擇? 本質上,我希望能夠將插件放在共享對象文件中,並在運行時加載它們,我希望以跨平台的C ++方式實現。

編輯 :我從2007年找到了Dobbs博士的這篇博士 ; 從那以后,肯定有人提出了更多的東西。

您可以查看Boost Extension,但尚未被Boost接受。

Boost.Extension庫的開發旨在簡化使用共享庫的插件和類似軟件擴展的開發。 可以從共享庫中獲取類,函數和數據,並由應用程序加載。

Qt有一個很好的插件系統 您應該看一下該頁面的第二部分

如果你想要簡單輕巧的東西,請嘗試: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM