簡體   English   中英

我應該在OSX上使用CFPlugin還是dlopen()作為C ++的插件

[英]Should I use CFPlugin or dlopen() for plugin for C++ on OSX

我需要在OSX上制作一個插件庫,該插件庫將在運行時加載。 該庫主要使用C ++。 插件的行為方式是該程序將掃描目錄並搜索插件。 現在,它需要從插件(如類型)中獲取一些信息,並需要基於該信息創建實例。

我搜索了選項,並為OSX- dlopen()CFPlugin獲得了這兩個選項。 dlopen()的優點是我們不需要擴展基本抽象類(如果使用CFPlugin ,則必須CFPlugin )。 缺點是我們需要在知道庫類型之前加載庫。

對於CFPlugin ,Apple並未明確提及是否在創建實例之前先將其加載。 我們可以調用CFPlugInFindFactoriesForPlugInTypeInPlugIn函數來了解所有能夠創建實例的函數。 但是在搜索可用功能之前是否已加載插件?

最后,使用dlopen()加載*.bundle插件。 使用捆綁軟件的優勢在於, *.plistplist必須始終嵌入其中,並且可以從plist文件中獲取加載捆綁軟件之前需要的任何信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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