接著(二),重新把vlc_entry__core 寫出來:
int vlc_entry__core (vlc_set_cb vlc_set, void *opaque)
注意(va_arg (ap, module_t *)) = submodule;這句,ap正好對應第四個引數,它是&module, 因此module被建立出來了。後面的vlc_set (opaque, module, vlc_module_name, (module_string))也是類似。
再看回(二)中的:
vlc_module_begin ()
set_category( cat_audio )
set_subcategory( subcat_audio_general )
add_category_hint( n_("audio"), aout_cat_longtext , false )
中間的設定非常多!!!
vlc_module_end ()
其實set_category( cat_audio )等等這些都是巨集,他們實際上都是通過vlc_plugin_setter 給module設定引數,就不一一詳述了。 載入外掛程式(二)之靜態載入
舉個例子來說明外掛程式的載入,以核心外掛程式為例,它在libvlc new中執行,流程如下 上圖中的vlc entry core是乙個函式指標,定義在modules.h中 core module int vlc entry core int void void int,void 那麼vlc entr...
載入外掛程式(四)之動態載入
三 中介紹了核心模組的載入,其實那是靜態載入,現在我們介紹一下動態載入,從allocatepluginfile 說起,參考 一 可以看到它的位置,這裡不重複了。流程如下 上圖中,呼叫windows api loadlibraryw 來載入動態庫,返回動態庫的控制代碼handle,然後呼叫getpro...
kettle外掛程式載入流程
kettle遵循著外掛程式機制,基於外掛程式使得kettle整個結構非常清晰,耦合性低,移植性強,特別是對kettle進行二次開發尤其方便,根據了解,擴充套件step型別的外掛程式比較多,具體步驟可以參考 通過了解外掛程式的載入流程,不僅kettle的原理有深一層的認識,還有助於在進行二次開發遇到問...