青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 1, 文章 - 9, 評論 - 4, 引用 - 0
數(shù)據(jù)加載中……

New Application

Project1.cpp:

//---------------------------------------------------------------------------

#include 
<vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1); //調(diào)用這個vcl模塊,詳見Unit1.cpp
//---------------------------------------------------------------------------
//這里很搞笑,沒給參數(shù)名重寫,不知道這樣函數(shù)里面能不能用到這幾個參數(shù)
//不過好像也就沒用
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    
try
    {
         Application
->Initialize();
         
//The owner of the new form is the Application object
         
//__classid返回一個指向TForm1的vtable的指針,這點還要再看看實現(xiàn)過程
         Application->CreateForm(__classid(TForm1), &Form1);
         Application
->Run();
    }
    
catch (Exception &exception)
    {
         Application
->ShowException(&exception);
    }
    
catch ()
    {
         
try
         {
             
throw Exception("");
         }
         
catch (Exception &exception)
         {
             Application
->ShowException(&exception);
         }
    }
    
return 0;
}
//---------------------------------------------------------------------------


Unit1.h:

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
//都只是些聲明部分,所以包含在頭文件里面
#include <Classes.hpp> //TPersistent, TComponent
#include <Controls.hpp> //TControl, TWinControl
#include <StdCtrls.hpp> //TButton
#include <Forms.hpp> //TApplication, TForm
//---------------------------------------------------------------------------
/*

TObject(RTTI,垃圾回收等最基本的)
    |
    |--TList(stores an array of pointers)
    |
    |--TStream(read and write to some media)
    |   |
    |   |--TFileStream,TStringStream,TWinSocketStrem
    |
    |--TFiler(讀寫控件[objects]屬性:比如保存dfm文件信息,在內(nèi)存中暫存控件信息等)
    |   |
    |   |--TReader
    |   |--TWriter(具體實現(xiàn)Filer功能)
    |
    |--TPersistent(have assignment and streaming capabilities)
        |
        |--TStrings(for objects that represent a list of strings)
        |   |
        |   |--TStringList(具體實現(xiàn))
        |
        |--TComponent(控件父類,包括可顯示和不可顯示)
            |
            |--TApplication(抽象WindowsGUI環(huán)境,消息機制當(dāng)然還有針對web的環(huán)境)
            |
            |--TControl(可視控件)
                |
                |--TWinControl(針對Windows的可視控件)
                    |
                    |--TButtonControl(Button的抽象)
                    |   |
                    |   |--TButton(Button的具體實現(xiàn))
                    |
                    |--TScrollingWinControl(支持滾動條的Windows控件)
                        |
                        |--TCustomForm
                            |
                            |--TForm
*/
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    
// IDE-managed Components
private:    // User declarations
public:        // User declarations
    __fastcall TForm1(TComponent* Owner); //Owner是創(chuàng)造者,Parent是呈現(xiàn)者(只對于可視控件)
};
//---------------------------------------------------------------------------
/*

把這個vcl(Form1)導(dǎo)出,其他模塊使用這個頭文件時就告訴編譯器,這個vcl在別處具體定義
*/
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
 

Unit1.cpp:

//---------------------------------------------------------------------------

#include 
<vcl.h>
#pragma hdrstop 
//之前的頭文件可以使用頭文件緩存技術(shù),其他包含vcl.h的編譯塊就編譯一次

#include 
"Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource 
"*.dfm"
/*
這里的疑問在于,頭文件里面已經(jīng)有一個extern的指針,這里為何還要再次搞出個指針.
注意在Project1.cpp里面有個USEFORM的宏,這個宏的具體定義在vcl\sysclass.h文件中
如下:

#ifdef BCBVER1
  #define USEFORM(FileName, FormName) \
    class DELPHICLASS T##FormName;       \
    extern T##FormName *FormName;
#else
  #define USEFORM(FileName, FormName) \
    class DELPHICLASS T##FormName;       \
    extern PACKAGE T##FormName *FormName;
#endif

可以看出這里FileName根本沒用上,所以"既然給了cpp也就給了.h也就給了那個extern指針"
的想法是錯誤的,cpp文件根本就沒有起到任何作用,還是完全依賴連接時靠extern的存儲
屬性在obj里面去找.這也就是為什么cpp里面如果沒有下面這個指針聲明,報錯的不是Unit1
而是Project1,因為是在Project1調(diào)用了這么個沒有定義個指針.還有一點就是,之所以會這
樣是因為.h是不會編譯的,Project1在Unit1.cpp對應(yīng)的obj里面去找,當(dāng)然找不到.所以這里
必須要再次寫上一句.
*/
TForm1 
*Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 

posted on 2008-12-31 23:10 EiN 閱讀(269) 評論(0)  編輯 收藏 引用 所屬分類: C++Builder

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            免费视频亚洲| 欧美二区不卡| 欧美国产日本在线| 99视频精品全部免费在线| 久久精品一区蜜桃臀影院| 欧美午夜精品久久久久久人妖| 国产一区二区精品久久| 欧美视频中文字幕| 欧美成人精品在线观看| 欧美日韩国产色综合一二三四 | 欧美另类亚洲| 久久久精品国产一区二区三区 | 欧美亚洲一级| 欧美一级视频精品观看| 久久久久九九九九| 男女激情视频一区| 亚洲国产天堂久久综合网| 亚洲精品视频啊美女在线直播| 亚洲午夜视频在线| 久久免费精品视频| 国内久久精品| 亚洲欧美日韩国产成人精品影院 | 久久婷婷久久| 欧美国产综合| 精品二区久久| 亚洲一区二区不卡免费| 欧美大片国产精品| 亚洲欧美国产三级| 国产精品一区久久久久| 亚洲欧美激情精品一区二区| 激情丁香综合| 亚洲欧美www| 欧美高清视频| 欧美成熟视频| 国产乱肥老妇国产一区二| 国产亚洲精品激情久久| 亚洲欧洲一二三| 校园激情久久| 欧美成ee人免费视频| 免费久久99精品国产| 欧美高清你懂得| 欧美不卡一区| 亚洲欧美日韩视频一区| 欧美精品v国产精品v日韩精品| 国产精品日日摸夜夜摸av| 99精品免费网| 免费中文字幕日韩欧美| 亚洲欧美日韩国产| 欧美日韩一级视频| 亚洲精品一区二区三区99| 久久综合网hezyo| 午夜精品一区二区三区在线| 国产精品扒开腿做爽爽爽视频| 欧美大秀在线观看| 欧美伊人久久| 亚洲高清久久网| 久久美女艺术照精彩视频福利播放| 日韩一级黄色片| 国产精品国产精品国产专区不蜜| 久久久久久久999| 欧美日韩视频在线一区二区 | 国产乱码精品一区二区三区不卡| 亚洲免费视频成人| 欧美性猛交xxxx乱大交蜜桃| 亚洲小视频在线| 香蕉成人伊视频在线观看| 亚洲专区欧美专区| 国产乱人伦精品一区二区 | 国内精品伊人久久久久av一坑| 欧美午夜片欧美片在线观看| 狠狠久久婷婷| 亚洲视频1区| 日韩小视频在线观看专区| 欧美成人午夜激情在线| 亚洲精品欧美极品| 91久久久久久久久| 欧美激情精品久久久久久变态| 亚洲高清不卡| 91久久在线视频| 欧美日韩一区在线观看| 亚洲一区二区三区视频| 国产精品久久久久aaaa樱花| 亚洲主播在线观看| 夜久久久久久| 亚洲乱码国产乱码精品精| 国内揄拍国内精品久久| 久久久精品国产99久久精品芒果| 欧美激情一区二区三区在线视频观看| 亚洲电影天堂av| 国产精品看片资源| 久久一综合视频| 欧美成人精品在线播放| 亚洲国产日韩欧美一区二区三区| 美日韩精品免费| 欧美日韩一区精品| 欧美日韩国产一中文字不卡 | 国产精品一区二区a| 亚洲嫩草精品久久| 亚洲一区二区av电影| 国产精品一二| 久久精品动漫| 久久人人97超碰精品888| 国产精品视频一区二区三区| 欧美日韩国产成人在线观看| 国产精品嫩草99av在线| 久久免费视频在线| 亚洲一区免费看| 91久久国产综合久久| 久久国产精品久久久久久| 在线免费不卡视频| 欧美—级高清免费播放| 欧美在线播放一区二区| 亚洲国产成人av| 国产精品美女在线观看| 欧美啪啪成人vr| 欧美日韩三级| 国产女主播在线一区二区| 欧美人与性动交a欧美精品| 欧美aⅴ一区二区三区视频| 久久综合狠狠综合久久激情| 亚洲国产精品一区| 亚洲国产日韩欧美| 亚洲性图久久| 久久久精品动漫| 亚洲国产色一区| 麻豆成人精品| 亚洲视频在线观看一区| 国产一区二区日韩精品欧美精品| 裸体一区二区| 亚洲欧美激情诱惑| 亚洲一区二区三区久久 | 亚洲精华国产欧美| 国产亚洲一区二区三区在线播放| 一区二区高清视频| 日韩一级视频免费观看在线| 久久久999| 久久久久se| 国产一区二区三区精品久久久| 一本久道久久久| 99在线热播精品免费| 欧美日韩国产首页在线观看| 亚洲电影在线免费观看| 亚洲国产综合在线| 免费亚洲网站| 亚洲欧美视频在线观看视频| 欧美日韩一区二区免费视频| 欧美福利视频在线观看| 亚洲一区www| 久久精品国产第一区二区三区最新章节 | 国产在线精品一区二区中文| 一区二区三区欧美激情| 国产精品久久久久一区| 一区二区av| 久热精品视频在线免费观看| 国产欧美精品| 亚洲激情一区| 国产精品久久久久三级| 免费一区二区三区| 欧美精品福利| 一区免费观看视频| 亚洲午夜电影| 亚洲激情成人网| 久久久久久久久伊人| 欧美私人网站| 影音先锋中文字幕一区二区| 久久精品视频在线| 国产精品成人观看视频国产奇米| 一本色道久久| 久久久久久亚洲综合影院红桃| 狠狠爱成人网| 欧美a一区二区| 夜夜嗨av一区二区三区网站四季av| 亚洲欧美国产高清va在线播| 国产一区二区三区久久悠悠色av| 久久天堂精品| 一本色道久久88精品综合| 亚欧成人精品| 亚洲欧洲一区| 国产乱人伦精品一区二区| 免费久久99精品国产| 亚洲午夜激情免费视频| 你懂的视频欧美| 亚洲欧美日韩精品在线| 在线精品在线| 国产精品视频观看| 欧美在线观看视频| 99视频精品| 久久精品国产亚洲一区二区三区| 久久综合色播五月| 国内精品久久久| 亚洲精品视频在线看| 一区视频在线看| 久久国产精品久久国产精品| 亚洲一区观看| 欧美视频在线观看视频极品| 亚洲日本成人女熟在线观看| 亚洲国产专区| 欧美日韩另类一区| 正在播放亚洲| 久久躁狠狠躁夜夜爽|