目錄外掛程式的本質就是動態鏈結庫,對於庫,需要匯出符號,供使用者匯入使用。在qt creator的原始碼中,存在固定的匯入匯出模式。
對於每個庫和外掛程式,都有乙個xx_global.h標頭檔案,其中xx為庫或外掛程式名。示例如下
#pragma once
#include #if defined(xx_library)
# define xx_export q_decl_export
#else
# define xx_export q_decl_import
#endif
這就很明顯了,xx_library作為開關,來決定匯入匯出。
對於具體的實現,我們可以
class xx_export xx
在類的宣告中新增xx_export。
在qt creator原始碼中,在專案檔案中新增了定義
defines += xx_library
這導致xx_export被替換為q_decl_export進行匯出。
對於庫或外掛程式的使用者,直接包含xx.h即可,由於沒有定義xx_library,這裡xx_export被替換為q_decl_import進行匯入。
原創造福大家,共享改變世界
獻出一片愛心,溫暖作者心靈
qt creator原始碼全方面分析 2 0
目錄 支援其他檔案型別 執行外部工具 所有主題 qt creator是為qt開發人員的需求量身定製的跨平台整合開發環境 ide qt creator可以通過多種方式擴充套件。例如,qt creator架構基於外掛程式載入器,這意味著外掛程式載入器以外的所有功能都在外掛程式中實現。但是,您可以擴充套件...
qt creator原始碼全方面分析 2 6
目錄 編寫訊息 ui文字大寫 使用句子樣式大寫 準備本地化 qt creator通用條款 請遵循本節中的準則,以確保擴充套件與qt creator ui保持一致,並且可以輕鬆地將其本地化為其他語言。編寫ui文字時,請確保它 使用者介面文字應簡潔明瞭且經濟實惠。避免使用不必要的內容詞和短語。但是,更重...
qt creator原始碼全方面分析 4 0
qt creator原始碼是在qt物件和框架基礎下寫的,因此,閱讀qt creator原始碼,你首先對qt得有一定的了解。the qt resource system 其他關鍵框架 略。避免與第三方的emit,signal和slots衝突 向元物件系統註冊enum 宣告enum,並向元物件系統註冊e...