全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1412
推到 Plurk!
推到 Facebook!

請問PACKAGE用法?

答題得分者是:aftcast
CoffeeX
中階會員


發表:18
回覆:121
積分:72
註冊:2005-02-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-05 14:02:23 IP:140.125.xxx.xxx 訂閱

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include
#include
#include
#include <Forms.hpp><br />//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

我想請問關於extern PACKAGE 這一行,其中PACKAGE的用法,

其次若我寫了一個class,如同TForm *Form1,在.cpp中先宣告成全域,

那麼是否可以仿照以上的作法,將其他的cpp檔include這個.h就能加以採用此class

------
=.=???
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-08-09 16:11:20 IP:61.229.xxx.xxx 未訂閱

終於有人也提出這個問題…
因為這問題在很久以前也曾困擾我。大多數的人好像都把這「細節」給當做不知道,反正也不影響程式的寫作?!

一般c/c 為了宣告一個全域的變數好讓許多的unit可以include,一定會使用extern variable 這樣的宣告在檔頭。但是為什麼bcb裡特別還加了個 package 字眼在中間? 這問題是我剛接觸bcb時的疑問。在bcb實作package的時候會用這個關鍵字的macro,但就我了解好像extern 後的package這個字並非是macro。

我可以確定的是因為所有的vcl都是delphi寫的,而被bcb包成package,當你要使用vcl的全域變數時就加入這個package關鍵字,以表示來自於vcl package。

而若你自己寫出來的calss,理論上是不需要package這個字眼來修飾宣告!

以上是我個人幾年來不認真的曾去思考過的解答,也是不正確也不一定,請真正很了解的人指正!

------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
系統時間:2024-03-29 14:35:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!