2013-05-02 59 views
3

在C++ Builder XE2中,IDE將在TMyForm類之後立即將這行代碼放入與TMyForm相關聯的頭文件中。我確定這涉及到所有屬性TMyForm都在MyForm.dfm中定義並需要以某種方式鏈接到可執行文件的事實,但我無法在文檔或在線中找到任何對它的引用。搜索「extern PACKAGE」只會產生大量包含該短語的代碼示例。「extern PACKAGE TMyForm * MyForm」的含義是什麼

奇怪的是,評論它似乎沒有任何影響。我甚至刪除了.res文件並進行了重建,並且沒有它,表單工作正常。這似乎否定了我上面的假設。

+0

看來PACKAGE是一個宏。檢查它的定義。 – Mahesh 2013-05-02 20:30:17

+0

@Mahesh我無法找到它的定義,通過右鍵單擊並選擇「查找聲明」,不知道還有什麼地方看。 – marcp 2013-05-02 20:41:57

+0

'PACKAGE'在sysmac.h中定義。 – 2013-05-02 20:45:40

回答

6

extern TMyForm *MyForm用於聲明一個全局變量(實際上駐留在窗體的.cpp文件中)。如果在應用程序啓動時配置爲自動加載,或者如果您在自己的代碼中手動分配,則該變量指向運行時的TForm對象。

PACKAGE是一個擴展到__declspec(package)的宏,如果您選擇在Package中使用它,則該類將該類標記爲可在Package中編譯。

+0

謝謝Remy,我經常刪除全局聲明,因爲我更喜歡在聲明它的地方聲明它,所以我想我也可以刪除extern聲明。 – marcp 2013-05-02 20:52:07