<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇開(kāi)發(fā)語(yǔ)言培訓(xùn)專(zhuān)區(qū)Delphi程序設(shè)計(jì) → CB vs Delphi


      共有8416人關(guān)注過(guò)本帖樹(shù)形打印

    主題:CB vs Delphi

    美女呀,離線(xiàn),留言給我吧!
    wangxinxin
      1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


    加好友 發(fā)短信
    等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
    CB vs Delphi  發(fā)帖心情 Post By:2010-12-14 11:32:55

    自從Borland推出了Borland C++ Builder之后,許多人時(shí)常會(huì)詢(xún)問(wèn)BCB和Delphi有什么不同?除了使用的語(yǔ)言(C/C++ v.s. Object Pascal)之外,是不是都一樣?也有人經(jīng) 常會(huì)不滿(mǎn)的指出,是不是BCB 一定會(huì)在功能上落后Delphi一個(gè)版本,那么使用BCB的人比
    3 B) _8 l3 ]5 ^( D1 L4 P- B起Delphi 的程序員來(lái)說(shuō),是不是代表全用BCB的人是二等公民.說(shuō)實(shí)話(huà)在BCB 1.0中由于Borland主要的目的是推出使用C/C++ 語(yǔ)言的RAD工具所以BCB 1.0和Delphi 2.0的功能上幾乎是一樣,但 是BCB 1.0卻遠(yuǎn)比Delphi 2.0晚了一年的時(shí)間才推出.以致造成許多 人有上面的印象和問(wèn)題的出現(xiàn).今年的三月Borland又推出了BCB3.0, 雖然BCB3.0距離Delphi3.0推出的時(shí)間縮短10個(gè)月,但是BCB 3.0的功能是不能仍然是復(fù)制Delphi 3.0的功能呢?雖然BCB3.0和Delphi3.0在整合發(fā)民環(huán)境,VCL元件,和許多地方仍然非常的類(lèi)似,
    % e9 e2 x- Z. u7 b, j( j" Y但是在BCB3.0的技術(shù)底層卻已經(jīng)和Delphi3.0仍然是以 VCL元件類(lèi)別為主,但是在建立ActiveX元件和N-Tier的應(yīng)用程序技術(shù)上將會(huì)走向不同的方向.這是因?yàn)镃/C++和Object Pascal語(yǔ)言上差異的原 因.在本篇文章中,我將從技術(shù)的角度討論C++ BCB 3.0和Delphi 3.0的 不同,希望能夠讓使用這二個(gè)開(kāi)發(fā)工具的程序員都有所了解.' W$ I+ \2 K2 o

    : Z4 \  t3 }% q$ M8 P6 N& T# BCB 3.0 在除錯(cuò)功能的大幅領(lǐng)先
    ; d2 }" K- t9 W* G! ]2 N  ~
    ( D+ G; T( U0 R; B5 Y: w* P4 l對(duì)于C/C++的使用者而言,除錯(cuò)是平日工作中的少不了的事情.所以一個(gè)C/C++編譯器的除錯(cuò)功能就直接影響了生產(chǎn)力.在BCB 3.0中Borland對(duì)于 BCB3.0除錯(cuò)功能的強(qiáng)化會(huì)讓Delphi3.0的使用者羨慕的不得了.BCB3.0除了擁有Delphi3.0對(duì)于雙數(shù)檢視的工具視窗,加快了檢視字串變數(shù)的之外,更 加入了強(qiáng)勁的模組檢視功能.這個(gè)模組檢視器可以讓你巨細(xì)靡遺的觀看應(yīng)用程序使用權(quán)的所有DLL以及專(zhuān)案中每一支程序的所有的方法.在中斷點(diǎn)之處啟動(dòng)模組檢視器檢查應(yīng)用程序.你可以看到模組檢視器顯示了多么詳細(xì)的資訊.更令人驚訝的是,BCB 3.0在應(yīng)用程序執(zhí)行時(shí)期居然能夠顯示出類(lèi)似物件檢視器的視窗,讓你檢查一個(gè)VCL元件的所有資訊.包括特性值,方法和事件處理函數(shù).這個(gè)除錯(cuò)功能實(shí)在太棒了,因?yàn)橛辛怂?你就可以掌握?qǐng)?zhí)行時(shí)期 VCL元件所有的變化.此外BCB 3.0也包括了一個(gè)Event Log可以讓檢視應(yīng)用程序執(zhí)行時(shí)發(fā)生的事件.這些新的除錯(cuò)功能都是Delphi3.0所沒(méi)有的低層除錯(cuò)能力.除了除錯(cuò)功能之外,BCB3.0也允許程序員對(duì)于編譯器更好的控制能力.圖形是BCB 3.0中新的 高等編譯器選項(xiàng)功能.你可以看到BCB和一往的BC++一樣允許你更進(jìn)一步的控制產(chǎn)生的程序碼品質(zhì).請(qǐng)注意在這些選項(xiàng)中有一項(xiàng)MFC Compatibility. 當(dāng)你需要在BCB3.0中編譯MFC的程序時(shí),你必須選擇這個(gè)選項(xiàng),因?yàn)镸FC使用了許多不正確而且奇怪的C/C++語(yǔ)法,為了要讓BCB的編譯器能夠順利的編譯MFC程序,這個(gè)選 項(xiàng)可以讓編譯器不致產(chǎn)生嚴(yán)重的錯(cuò)誤.
    ( T/ B- f" v) B. }8 p" a1 l2 O$ m. B
    5 w+ M3 r5 D% j4 S1 Z#制作ActiveX/N-Tier遠(yuǎn)程服務(wù)器的技術(shù)差異
    7 \. B, U# W8 G: K, t$ Z. u9 M7 ~$ t% N- @- \( Q
    Delphi 3.0是PC級(jí)的工具中第一個(gè)真正可以開(kāi)發(fā)N-Tier的開(kāi)發(fā)工具. 另外Delphi3.0也是所有Borland的工具中支援COM/ActiveX最為完整的工 具,但是現(xiàn)在這個(gè)局面將被BCB 3.0打破.因?yàn)锽orland現(xiàn)在也給予了C/C++ 使用權(quán)者相同的強(qiáng)大功能,讓C/C++的程序員也可以設(shè)計(jì)出分散式物件計(jì)算應(yīng)用程序.此外BCB 3.0也可以讓你一個(gè)步驟便制作出ActiveX元件.但是在產(chǎn)生分散式物件和ActiveX元件時(shí),Delphi3.0和BCB3.0差別最大的地方.下 面列出這兩個(gè)產(chǎn)品使用的引擎., ^& f1 u: r9 ]6 |9 o" V
    ) Y" G' U' l: X! W/ |$ [
    Delphi 3.0 ----DAX (Delphi ActiveX Engine)4 u/ |0 a; _( y# u5 a+ z: W! e
    Borland C++ Builder 3.0 ----ATL (ActiveX Template Library)
    7 h' \, M$ y5 Q( m+ I1 h7 o! z+ A' D% V' m% e0 k, ~: N% ?
    它們使用的引擎不同的原因除了Object Pascal不支持樣版(template) 外,另外的原因便是讓BCB產(chǎn)生的ActiveX元件和DCOM服務(wù)器能夠比較小.此 外BCB 3.0藉由使用ATL可以讓C/C++的程序員在未來(lái)跟上MicroSoft最新的技術(shù),例如對(duì)于COM+的支援.例如,當(dāng)你使用BCB3.0建立遠(yuǎn)端的DCOM服務(wù)器, 可以啟動(dòng)ATL選項(xiàng)指定DCOM服務(wù)器使用的樣例方式以及使用的執(zhí)行緒模型. 當(dāng)你使用BCB3.0的ATL選項(xiàng)制作ActiveXForm時(shí),它可以結(jié)合資料庫(kù)的能力, 讓你開(kāi)發(fā)出可以直接在IE瀏覽器中執(zhí)行的資料庫(kù)應(yīng)用程序.在這里有一點(diǎn)很重要的是在Delphi 3.02的DAX引擎之中,并沒(méi)有指定 ActiveX元件使用的執(zhí)行緒模式.所以由Delphi 3.02制作的ActiveX和Act-iveFrom都無(wú)法正確的在IE4.0之中顯示出來(lái).這并不是Delphi 3.02的臭蟲(chóng), 而是Microsoft改變了ActiveX元件游戲的規(guī)則.此外由于IE4.0之中有一些 臭蟲(chóng)的存在,所以我建議你升級(jí)到4.01或是4.02.+ C  w! Z% Y) v. q" ]

    9 d$ q- H' b0 h3 S#處理Windows訊息的技術(shù)差異
    ' C( y3 k/ u( _4 @" K5 J5 N% f" C; ^& ^1 h9 ^
    BCB 3.0和Delphi 3.02在處理Window計(jì)算的方式上也有相異這處. 基本上BCB和Delphi都是使用VCL這個(gè)元件類(lèi)別,所以在處理Window訊息上 也是由VCL元件來(lái)處理和分派的.下面的表格比較了VCL, OWL以及 MFC三種 FrameWork在處理Window訊息上的異+ B& h# ]7 i; Q
    同:# m+ r) B9 |( A$ X) a" e! H7 E
    ' T# m3 q# C- f- o- }/ t" _( v: M( s
    * Windows訊息處理的處理方式:- Y( K8 R* D9 |! T) f. z% {
    VCL元件類(lèi)別---使用虛擬函數(shù)(Virtual Function) 和動(dòng)態(tài)函數(shù)(Dynamic. [2 @# I) F9 d" `+ E7 M0 |2 x
    Function)
    # O9 w0 F6 P* ~9 c$ C1 HOWLFramework(2.0之后)---使用虛擬函數(shù)
    ) j/ X8 n/ ^* T2 I$ jMFCFramework---使用Message MAP. d% c; g  M9 u9 N" h% J5 _8 }
    ( N4 R1 W% K9 S' O# e. s- R. L
    * Windows訊息caching:
    ) ~" |( i5 g  [4 ?4 NVCL元件類(lèi)別---否
    $ r6 k( T. \% [( G" f: _2 I% ^OWLFramework(2.0之后)---是/ A9 j" V+ O5 ?9 G4 B. D7 h
    MFCFramework---否
    ( K) M2 |1 l2 n" r! N* M5 O2 y) g# a- j, o6 M/ z. I
    * 處理Windows訊息的速度:
    ( n; Y  o  ~  K% j1 r: Y( IVCL元件類(lèi)別---良好
    . A6 X+ R& U# E, G1 |9 @) UOWLFramework(2.0之后)---優(yōu)
    $ j/ Q2 J, l7 Q9 AMFCFramework---優(yōu)) E% O1 X2 X0 {6 T
    & @9 a* [9 w( }4 s% L
    請(qǐng)注意,由于VCL元件類(lèi)別在處理Window訊息時(shí)除了需要分派Window訊息到特定的訊息處理函式之外,它也會(huì)負(fù)責(zé)觸發(fā)VCL上相關(guān)事件處理函數(shù), 所以在處理Window訊息的速度上會(huì)比OWL以及MFC稍慢,但是在功能上卻比 OWL和MFC更為豐富.在BCB 3.0中由于它使用的C++編譯器是BC++5.3,而且使用的Delphi編譯器也是Version 11,更重要的是由于BCB 3.0除了使用VCL類(lèi)別進(jìn)行VCL元 件的事件處理函數(shù)的window訊息分派之外,它也使用了類(lèi)似MFC的Message Map來(lái)分派使用者定義的訊息處理函式,所以在處理window訊息的速度上比 Delphi 3.02來(lái)得快速.
    1 c0 C1 t% N, r2 [  B; N
    4 g0 w% T- |; V' q1 o#處理windows訊息的方式:
    3 U7 d2 A/ v6 M1 r; c4 D% r5 ]% h" c4 k
    Delphi 3.02---使用虛擬函數(shù)(Virtual Function) 和動(dòng)態(tài)函數(shù)(DynamicFunction)
    6 N- x1 q" N& }# n3 m" vBorland C++ Builder 3.0---混合虛擬函數(shù)和動(dòng)態(tài)函數(shù),以及類(lèi)似MFC 的MessageMAP的事件處理函數(shù)的window訊息分派之外,它也使用了類(lèi)似MFC的Message Map來(lái)分派使用者定義的訊息處理函式,所以在處理window訊息的速度上比 Delphi 3.02來(lái)得快速.
    3 M/ }: t: E/ m4 m' g' i, R) j* m$ Z6 J' W0 l) h
    我分別使用Delphi3.02和BCB3.0撰寫(xiě)了一段處理window訊息1000次的示范程序,在我的Pentium133,64M Ram的機(jī)器上執(zhí)行的結(jié)果如下:+ F4 E5 u5 k8 y; K! f1 P
    + K1 D- y% d* x+ A& \
    處理1000訊息的時(shí)間:
    : x* G* \9 K  C# E6 P( }; d. o# }BCB 3.0-------4.08
    7 X7 L( z, m8 P$ eDelphi 3.02---4.890 `! d% u2 `) R
    % Y- u1 @8 k1 W9 e8 K) v+ _6 ^% D
    從上面的結(jié)果也可以證明BCB在處理window訊息方面是比Delphi3.02來(lái)得稍為快速.此外在ActiveX元件方面由于BCB3.0也是使用ATL的Message MAP 方式,所以在這方面比Delphi 3.02有較好的表現(xiàn).
    6 y! w* N) }+ {0 I9 i) i/ M
    5 E: w1 i! @% _; ]# 系統(tǒng)功能的支援; ~* V. u( m$ d/ ~6 i7 j$ O
    ( V) Z/ P8 p7 \/ I/ A. ~
    BCB3.0 除了前面比較偏向底層技術(shù)的革新之外,它也提供了一些重要的工具讓先前使用BC++或是VC++的開(kāi)發(fā)者可以很快地轉(zhuǎn)換到BCB的開(kāi)發(fā)環(huán)境之中. 第一個(gè)工具是所謂的資源轉(zhuǎn)換精靈,它可以幫助你轉(zhuǎn)換資源文件的內(nèi)容成為BCB使用的表格和VCL元件.第二個(gè)工具是Borland推出的新工具 Comm20MF.這個(gè)工具可以讓你轉(zhuǎn)換VC++產(chǎn)生的DLL成為能夠讓BCB使用的DLL., L* K) S7 n' v% c" L5 [6 r2 H' ]

    ; r9 j1 Y  C$ F# RC Import精靈
    & W4 B* u- c! {7 s* P( k
    . X2 y5 @5 w( K對(duì)于許多使用BC++和VC++的人來(lái)說(shuō),一定使用了Resource Workshop或是AppStudio設(shè)計(jì)了許多的資源文件. 那么這些儲(chǔ)存對(duì)話(huà)盒或是其他視窗資源的文件如何在BCB 3.0中使用呢?是不是需要BCB使用的元件重新設(shè)計(jì)呢?當(dāng)然重新設(shè)計(jì)所有的資源文件將會(huì)是一件令人痛苦的事情.Borland為了解決這個(gè)問(wèn)題,特別為所有使用BCB 3.0的人提供了一個(gè)工具RC Import精靈.你可以在BCB的Tools選單中找到它.RC Import精靈可以幫助你讀取由BC++和VC++設(shè)計(jì)的所有資源,然后再把這些資源轉(zhuǎn)換為BCB使用的表格或是VCL元件.如此一來(lái)你就可以直接在 BCB中使用這些資源,并且結(jié)合所有BCB提供的VCL元件.有了RC Import精靈之后,你原先不管是使用BC++或是VC++設(shè)計(jì)的資源文件都能夠立刻轉(zhuǎn)換為BCB3.0的表格或是VCL元件,可以大幅減少你從這二個(gè) C++工具移轉(zhuǎn)到BCB3.0所需要花費(fèi)的時(shí)間.
    0 p. `' J2 e* R# N) k8 t0 q8 k6 i( o1 h& ?( `" E2 U
    # COFF函數(shù)庫(kù)的支持
    1 O: Q; M. }! ?9 ^: |2 f7 q. Z7 ]8 ~  C" T. O
    在傳統(tǒng)上Borland和 Microsoft的C++編譯器所產(chǎn)生的Object文件格式便是是不一樣的.Borland一直是使用OMF,而Microsoft則是使用COFF 格式. 這造成許多由VC++編譯的DLL無(wú)法讓BCB使用的情形.Borland為了解決這個(gè)問(wèn)題,所以在BCB 3.0中提供了這個(gè)工具讓開(kāi)發(fā)者能夠轉(zhuǎn)換VC++的DLL檔案格式成為BCB使用的OMF形式.如此一來(lái)就不會(huì)再有以前的困擾了.據(jù)我所知, Borland在未來(lái)會(huì)繼續(xù)強(qiáng)化這個(gè)工具,讓它功能更為強(qiáng)大,例如可能在未來(lái)也能夠轉(zhuǎn)換靜態(tài)的函數(shù)庫(kù)(.LLB)文件.除了上述的系統(tǒng)功能支持之外,事實(shí)上BCB3.0的連結(jié)器現(xiàn)在也能夠產(chǎn)生正確kernel-mode的驅(qū)動(dòng)程序文件格式.這代表你已經(jīng)可以使用BCB 3.0編寫(xiě)驅(qū)動(dòng)程序了.從這點(diǎn)來(lái)看BCB3.0對(duì)于系統(tǒng)工程師是非常有幫助的.BCB的程序員終于可以吐一口氣了,因?yàn)锽CB3.0在許多方面都領(lǐng)先了 Delphi3.0.從的VCL元件類(lèi)別3.5版,高等多重專(zhuān)案管理工具,到強(qiáng)勁的低層除錯(cuò)功能,同時(shí)支援VCL,MFC,OWL都顯示BCB3.0是一個(gè)同時(shí)兼顧應(yīng)用程序設(shè)計(jì)員和系統(tǒng)工程師需求的工具.此外由于BCB3.0繼承了Delphi3.0對(duì)于Multi-Tier,Internet應(yīng)用程序功能方面的經(jīng)驗(yàn),所以BCB是第一個(gè)讓C/C++程序設(shè)計(jì)員可以開(kāi)發(fā)分散式計(jì)算環(huán)境應(yīng)用程序的工具. 在未來(lái) BCB也將會(huì)同時(shí)支援Microsoft的COM+和CORBA等分散式物件技術(shù)的標(biāo)準(zhǔn). 這代表使用BCB,你就不必?fù)?dān)心未來(lái)你的應(yīng)用程序會(huì)產(chǎn)生無(wú)法繼續(xù)執(zhí)行問(wèn)題.當(dāng)然,對(duì)于Delphi的使用者而言,所有由BCB3.0開(kāi)發(fā)出來(lái)的技術(shù),也都將出現(xiàn)在Delphi未來(lái)的版本之中.從這個(gè)角度來(lái)看,BCB和Delphi將會(huì)是相互超前,且吸收彼此功能的競(jìng)爭(zhēng)局面.這對(duì)于BCB和Delphi使用者都是有利的,因?yàn)檫@二個(gè)產(chǎn)品在這種情形下將會(huì)進(jìn)步得更為迅速,相信這是所有使用Borland產(chǎn)品的人高興見(jiàn)到的事情

    支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    CB vs Delphi








    簽名
    主站蜘蛛池模板: 99r在线观看| 亚洲国产成人91精品| 蜜芽国产尤物AV尤物在线看| 夜夜夜夜猛噜噜噜噜噜试看| 久久精品中文字幕无码绿巨人 | 亚洲欧美成人一区二区在线电影| 精品真实国产乱文在线| 国产真人无遮挡作爱免费视频| аⅴ中文在线天堂| 把胡萝卜立着自己坐上去| 亚洲人成无码www久久久| 欧美色成人综合| 口工里番h全彩动态图| 青青草成人在线| 国产精品高清一区二区三区不卡| 两个小姨子韩国电影| 日本中文字幕在线观看视频| 亚洲国产精品综合久久网各| 爽天天天天天天天| 四虎一影院区永久精品| 达达兔欧美午夜国产亚洲| 国产精品无码久久久久| www成人免费视频| 成人精品一区二区三区中文字幕 | 久久99热精品| 日韩精品久久久肉伦网站 | 91蜜桃在线观看| 天天碰天天摸天天操| 久久天天躁狠狠躁夜夜躁2020| 欧洲97色综合成人网| 亚洲综合无码一区二区| 男性玩尿眼玩法| 国产一区二区三区在线看| 边摸边脱吃奶边高潮视频免费| 国产精品xxx| 97夜夜澡人人爽人人| 处处吻动漫高清在线观看| 一级毛片女人18水真多| 成人亚洲网站www在线观看| 久久免费视频3| 日本天堂免费观看|