2007年9月29日 星期六

[轉貼]VISUAL C++與C++ Builder差異


C++builder與visual c++、c#以及c語言有什麼區別
C++ Builder
C++ Builder是由Borland公司 繼Delphi之後又推出的一款高性能可視化集成開發工具。C++ Builder具有快速的可視化開發環境:只要簡單地把控件(Component)拖到窗體(Form)上,定義一下它的屬性,設置一下它的外觀,就可以快速地建立應用程序界面;C++ Builder內置了100多個完全封裝了Windows公用特性且具有完全可擴展性(包括全面支持ActiveX控件)的可重用控件;C++ Builder具有一個專業C++開發環境所能提供的全部功能:快速、高效、靈活的編譯器優化,逐步連接,CPU透視,命令行工具等。它實現了可視化的編程環境和功能強大的編程語言(C++)的完美結合。

C++ Builder優化的32位原碼(Native Code)編譯器建立在Borland公司久經考驗的編譯技術基礎之上,提供了高度安全性、可靠性、快速性的編譯優化方法,完全編譯出原始機器碼而非中間碼,軟件執行速度大大提高。在編譯和連接過程中,C++ Builder自動忽略未被修改的原代碼和沒有使用的函數,從而大大提高了編譯和連接速度。C++ Builder的CPU透視工具包括五個獨立的小面板,可以對正在運行程序從內部進行深層次的瞭解。另外C++ Builder還提供了一個專業開發環境所必需的命令行工具,以幫助建立C++程序或者準備編譯和連接的程序進行更精細的控制。

C++ Builder可以編譯所有符合ANSI/ISO標準的原代碼,支持最新ANSI C++/C語言特徵:模板(Templates)、例外(Exceptions)、運行類型信息(Runtime Type Information)、Namespaces等,另外它還可以使用標準C++庫且支持標準模板庫(STL),以前的所有C++/C原代碼可以不經過修改,直接移植到C++ Builder環境下來。C++ Builder完全支持32位長文件名、多線程程序設計,且允許程序員直接調用任何Win95和NT API函數。

C++ Builder的集成開發環境(IDE)提供了可視化窗體設計器、對像觀察器、控件板、工程管理器、集成編輯器和調試器等一系列可視化快速應用程序開發(RAD)工具,讓程序員可以很輕鬆地建立和管理自己的程序和資源。
____________________________________________________________________
Visual C++
Visual C++是一個功能強大的可視化軟件開發工具。自1993年Microsoft公司推出Visual C++1.0後,隨著其新版本的不斷問世,Visual C++已成為專業程序員進行軟件開發的首選工具。

雖然微軟公司推出了Visual C++.NET(Visual C++7.0),但它的應用的很大的局限性,只適用於Windows 2000,Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C++6.0為平台。

Visual C++6.0不僅是一個C++編譯器,而且是一個基於Windows操作系統的可視化集成開發環境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調試器以及程序嚮導AppWizard、類嚮導Class Wizard等開發工具。 這些組件通過一個名為Developer Studio的組件集成為和諧的開發環境。

Visual C++它大概可以分成三個主要的部分:

1. Developer Studio,這是一個集成開發環境,我們日常工作的99%都是在它上面完成的,再加上它的標題赫然寫著「Microsoft Visual C++」,所以很多人理所當然的認為,那就是Visual C++了。其實不然,雖然Developer Studio提供了一個很好的編輯器和很多Wizard,但實際上它沒有任何編譯和鏈接程序的功能,真正完成這些工作的幕後英雄後面會介紹。我們也知道,Developer Studio並不是專門用於VC的,它也同樣用於VB,VJ,VID等Visual Studio家族的其他同胞兄弟。所以不要把Developer Studio當成Visual C++, 它充其量只是Visual C++的一個殼子而已。這一點請切記!

2. MFC。從理論上來講,MFC也不是專用於Visual C++,Borland C++,C++Builder和Symantec C++同樣可以處理MFC。同時,用Visual C++編寫代碼也並不意味著一定要用MFC,只要願意,用Visual C++來編寫SDK程序,或者使用STL,ATL,一樣沒有限制。不過,Visual C++本來就是為MFC打造的,Visual C++中的許多特徵和語言擴展也是為MFC而設計的,所以用Visual C++而不用MFC就等於拋棄了Visual C++中很大的一部分功能。但是,Visual C++也不等於MFC。

3. Platform SDK。這才是Visual C++和整個Visual Studio的精華和靈魂,雖然我們很少能直接接觸到它。大致說來,Platform SDK是以Microsoft C/C++編譯器為核心(不是Visual C++,看清楚了),配合MASM,輔以其他一些工具和文檔資料。上面說到Developer Studio沒有編譯程序的功能,那麼這項工作是由誰來完成的呢?是CL,是NMAKE,和其他許許多多命令行程序,這些我們看不到的程序才是構成Visual Studio的基石。

____________________________________________________________________
c#
C#(讀做 "C sharp",中文譯音「夏普」)是微軟公司在去年六月發佈的一種新的編程語言,並定於在微軟職業開發者論壇(PDC)上登台亮相.C#是微軟公司研究員Anders Hejlsberg的最新成果.C#看起來與Java有著驚人的相似;它包括了諸如單一繼承,界面,與Java幾乎同樣的語法,和編譯成中間代碼再運行的過程.但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對像模型)是直接集成的,而且它是微軟公司.NET windows網絡框架的主角.

____________________________________________________________________
c語言
C語言是目前世界上流行、使用非常廣泛的高級程序設計語言。

C語言對操作系統和系統使用程序以及需要對硬件進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟件都是用C語言編寫的。

C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟件,三維,二維圖形和動畫它是數值計算的高級語言。

常用的編譯軟件有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,TurboC等等......


C語言的發展歷史

C語言的發展頗為有趣。它的原型ALGOL 60語言。(也成為A語言)

1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。

1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。

1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。

而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BGPL的第二個字母作為這種語言的名字,這就是C語言。

為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。

1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語言成為目前世界上流行最廣泛的高級程序設計語言。

1988年,隨著微型計算機的日益普及, 出現了許多C語言版本。由於沒有統一的標準,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標準研究所(ANSI)為C語言制定了一套ANSI標準, 成為現行的C語言標準 3.C語言的主要特點 。C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些彙編語言子程序, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。

C語言的特點

1. 簡潔緊湊、靈活方便

C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以像彙編語言一樣對位、字節和地址進行操作, 而這三者是計算機最基本的工作單元。

2. 運算符豐富

C的運算符包含的範圍很廣泛,共有種34個運算符。C語言把括號、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。

3. 數據結構豐富

C的數據類型有:整型、實型、字符型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種複雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。

4. C是結構式語言

結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控制程序流向,從而使程序完全結構化。

5. C語法限制不太嚴格、程序設計自由度大

一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。

6. C語言允許直接訪問物理地址,可以直接對硬件進行操作

因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象彙編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟件。

7. C語言程序生成代碼質量高,程序執行效率高

一般只比彙編程序生成的目標代碼效率低10へ20%。

8. C語言適用範圍大,可移植性好

C語言有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於多種機型。

當然,C語言也有自身的不足,比如:C語言的語法限制不太嚴格,對變量的類型約束不嚴格,影響程序的安全性,對數族下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。

總之,C語言既有高級語言的特點,又具有彙編語言的特點;既是一個成功的系統設計語言,有時一個使用的程序設計語言;既能用來編寫不依賴計算機硬件的應用程序,又能用來編寫各種系統程序;是一種受歡迎、應用廣泛的程序設計語言。
參考資料:http://baike.baidu.com/view/100377.html,http://baike.baidu.com/view/6590.html.http://baike.baidu.com/view/1219.htm
 

 
C++ Builder和Visual C++那個好學一點?
 
Turbo C++3.0,Visual C++6.0,Turbo C2.0分別是Borland,Microsoft,和***公司的產品
TC2.0基於DOS系統(界面),TC3.0和VC6.0是基於Windows系統(界面)
TC2.0不能是用鼠標(F10切換菜單欄與編輯區),TC3.0可以直接使用鼠標
就對C語言的編譯調試而言,什麼編譯器都是無所謂好與不好的,只用自己習慣的就對了
不同的編譯器在一些語法細節上會有些不同,也就是說,在一種編譯器上可以編譯運行的程序可能在另一種編譯器上就會報錯的哦
補充一下,還有C++ Builder和DEV C++編譯器
 
C++builder 6 比 vc++6 上手快,拖拖拉拉的就能作出一些窗體小程序
但畢竟都是表面的東西。
真正深入的話還是得學好c++這門語言,而不是哪個具體的IDE。

Visual C++, C++Builder, C++有什麼區別?
 
C++是一種語言
Visual C++是Ms的C++編譯器
C++ Builder是Borland出的C++編譯器
C++ Builder編寫界面比較容易 ,因為它有VCl
VC只能用SDK慢慢寫了
VC++穩定,實力強大(但不如C++BUILDER強)但開發軟件慢,效率差,而且超級難學,沒有很好的數學和英語你就別想了。C++ BUILDER實力強過VC++,容易學。
而且編程不用那麼麻煩,而且包括底層和桌面應用程序什麼都能開發,
但其實C++BUILDER和DELPHI更接近,而不是接近VC++因為VCL是用DELPHI的,
屬於控件C++開發平台。
缺點是查錯不好,幫助系統不好,向下不兼容(不知道新版更正沒有)
 
Visual C++是微軟的集成開發環境
C++ Builder是Borland公司的集成開發環境


Visual C++與c++ builder的差異?
 
●1.先說下兩者的背景和如何選擇:

C++,正宗的貝爾實驗室的C語言基礎上擴展了高級類而來,完全可以看做是C語言的升級版本,雖然由 Builder公司出品,但實際上 Builder公司只不過做了一個IDE而已,雖然和VC「那強大的功能」比起來有限簡陋,但實際上是把更大的空間留給了開發者,可以更自由的發揮,在物理層硬件開發領域,還是彙編和C的天下(注意這裡的C指的是C、C++,和VC沒什麼事,原因見下文),所以如果你是正規攻讀計算機技術,走正宗的C語言開發路線,那當然是選C++。

VC,VC全稱可視化C語言,是正宗C語言的另一個升級版本嗎?答案是否定的!VC只不過引用了傳統C語言的語法,而核心的構假和思想完全是MS的Windows,從所謂的控件、窗體、模塊、API、DLL、Active、IEO、WMPO等等,有哪一個是從C裡面擴展而來的?這些東西完全就是Windows系統的一部分!不妨再看MS的整個Visual系列產品,VB、VJ、VF,難道說真的都是Basic、Java、Foxpro的升級版嗎?當然不是!這些語言完全都是披了一個外皮,而裡面的核心和VC如出一轍!你見過開發Java的人用VJ的嗎?這也就是為什麼VB裡的API可以直接COPY在VC裡用;因為他們的核心構造本來就是同一個----windows!這也就是為什麼VC開發的東西只能在Windows裡運行,脫離了win,VC開發的東西就是一堆廢碼。而這一切說到最後,當然還是歸功於windows的壟斷了。。。當然這也正是MS的高明之處,開個玩笑MS也在貫徹「一次開發,處處可用」的政策^_^,對MS瞭解多了,你就會發現,MS的軟件就是在互相調用,Windows裡的DLL可以在VC\VB裡調用,Office也可以在VC\VB裡調用,IE可以,wmp也可以,只要是MS利用壟斷的產品,你都可以直接在VC裡調用,而不用你寫一行代碼。。。這也就是為什麼VC的功能那麼強大,直接調用系統組件,和系統共用一個API,,能不強大嗎,這也正是為什麼windows平台的殺毒軟件都是VC寫的。所以說,如果你想通過速成,短期內加入到windows平台軟件的開發大潮,那選VC絕對是個首選!

PS:微軟的這種做法,不知忽悠了多少入門者,直到現在都有很多人搞不清VC\VB到底是一個軟件還是一個語言,搞不清楚C++\VC\VC++倒底是什麼關係,這就是微軟玩的把戲。


●2.VC在遊戲設計上的優勢:

VC在遊戲開發上,除了上文提到的「天然」對系統的良好支持外,最大的優勢當然就是:

1、DirectX技術,目前兩大3D API之一,又加上windows系統的天然支持,想不用都不行。。。

2、海量的DLL庫支持,人家微軟把90%的代碼都幫你寫好了,你直接寫上10%的代碼來調用就行了,開發速度快,那個公司的老闆都願意。。
 
不是一個公司的產品,Visual Studio是微軟的C++ Builder是Borland的,兩者的區別主要在於微軟的Visual Studio越來越向網絡化和開發平台化發展,比如Visual Studio 2005就已經把VB,C#,J#,ASP之類的開發平台完全統一了,正在開發中的代號為Orcas的下一代Visual Studio的平台化更加明顯,而C++ Builder則是僅僅趨向於網絡化
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

[轉貼]CreateObject 函數或 ActiveXObject 函數可能會在 InfoPath 2003 中產生指令碼錯誤

 

[轉貼]CreateObject 函數或 ActiveXObject 函數可能會在 InfoPath 2003 中產生指令碼錯誤

文章編號 : 832512
上次校閱 : 2006年2月16日
版次 : 2.0

徵狀

您可以使用 Microsoft VBScript CreateObject 函數或 Microsoft JScript ActiveXObject 函數來建立 ActiveX 元件的執行個體。如果您在呼叫 Microsoft Office InfoPath 2003 表單的函數的指令碼模組中建立 ActiveX 元件的執行個體,可能會收到下列其中一個錯誤訊息:
自動化伺服程式無法產生物件
ActiveX 元件無法產生物件

回此頁最上方

發生的原因

InfoPath 2003 表單一定會在 Internet 安全性區域的內容中執行。Internet 安全性區域會定義表單中的指令碼可以執行的動作以及表單中的指令碼不能執行的動作。一般而言,發生這個錯誤是因為如果 ActiveX 元件未標示為安全的不受信任指令碼安全的不受信任初始化,表單執行的 Internet 安全性區域便不允許建立 ActiveX 元件。這表示控制項的作者沒有證明如果有惡意指令碼或惡意資料時,元件不會損壞您的系統。

如需有關安全性區域如何影響表單對您電腦上的資源所具有的存取層級的詳細資訊,請按一下 [說明] 功能表上的 [Microsoft Office InfoPath 2003 說明],在 [輔助中心] 窗格的 [搜尋] 方塊中輸入關於安全性區域,然後按一下 [開始搜尋] 以檢視主題。
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
216434 (http://support.microsoft.com/kb/216434/) INFO: How Internet Explorer Determines If ActiveX Controls Are Safe

回此頁最上方

解決方案

如果要解決您的 InfoPath 2003 表單中的這個問題,請使用下列其中一種方法:
讓表單成為完全信任的 URN 表單。
在 Microsoft Internet Explorer 的信任網站清單中加入主控 InfoPath 2003 表單的伺服器的 URL。
數位簽署表單範本。(適用於 InfoPath 2003 SP1)

讓表單成為完全信任的 URN 表單

完全信任的 URN 表單必須使用自訂安裝指令碼或 Microsoft System Installer 套件安裝在您的電腦上。這樣即使 ActiveX 元件未標示為安全的不受信任指令碼安全的不受信任初始化,亦允許建立 ActiveX 元件。

您可以將標準表單手動轉換成 URN 表單。然而,手動轉換的工作很冗長,而且容易出錯。您也可以使用 InfoPath 2003 Software Development Kit (SDK) 隨附的命令列表單登錄工具 - RegForm.exe 工具,將標準表單轉換成 URN 表單。RegForm.exe 工具會對表單定義檔案及 XML 範本檔案進行必要的變更。然後 Regform.exe 工具會將檔案重新封裝成 .xsn 檔案,再建立自訂安裝程式來安裝修改後的表單範本。

如需有關如何下載 InfoPath 2003 SDK 的詳細資訊,請造訪下列 Microsoft 網站:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=351f0616-93aa-4fe8-9238-d702f1bfbab4 (http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=351f0616-93aa-4fe8-9238-d702f1bfbab4)
InfoPath 2003 SDK 的預設安裝位置為 C:\Program Files\Microsoft Office 2003 Developer Resources\Microsoft Office InfoPath 2003 SDK\Tools。

如果要查看命令列選項,請在 [命令] 視窗中輸入下面的命令列:
regform /?
請注意命令列中 /U 參數和 /T 參數的使用。/U 參數會指定用於表單範本的 URN。/T 參數會指定表單範本是完全信任的。如此會將表單定義 (.xsf) 檔案中的 requireFullTrust 屬性設定為「是」。

下面的命令列會在和您正在轉換的範本相同的資料夾中產生 .js 檔案和 .bak 檔案:
regform /U urn:MyForm:MyCompany /T Yes C:\MyForms\MyTrustedForm.xsn
.bak 檔案是進行 URN 變更之前的原始表單範本檔案的複本。.js 檔案是可以用於安裝 URN 表單的指令碼檔案。

如果要執行 .js 指令碼,請在命令列輸入下列程式碼,然後按 ENTER:
Cscript <full path of your .js file>
如需關於 URN 表單或 RegForm.exe 工具的詳細資訊,請參閱 InfoPath 2003 SDK 說明文件中的「使用表單登錄工具」主題。

在 Microsoft Internet Explorer 的信任網站清單中加入主控 InfoPath 2003 表單的伺服器的 URL

當您加入主控 InfoPath 2003 表單的伺服器的 URL 作為信任的網站時,會在執行程式碼時收到下面的訊息:
這個畫面上某個 ActiveX 控制項與其他部份相互作用時可能會不安全。要允許相互作用?
如果您按一下 [是],程式碼便會執行。如果您按一下 [否],可能會收到<徵狀>一節中所提及的錯誤訊息,而程式碼將不會執行。

如果要新增網站作為信任的網站,請執行下列步驟:
1. 啟動 Internet Explorer。
2. [工具] 功能表上,按一下 [網際網路選項]
3. [網際網路選項] 對話方塊中,按一下 [安全性] 索引標籤。
4. [安全性] 索引標籤上,按一下 [信任的網站]
5. 按一下 [網站]
6. [將此網站加到該區域] 文字方塊中,加入主控 InfoPath 2003 表單的伺服器的 URL。

例如,如果主控 InfoPath 2003 表單的伺服器的名稱為 MyServer,您必須加入文字方塊中的 URL 則為 http://MyServer
7. 按一下 [新增]

這會將新輸入的網站加入 [網站] 清單方塊中。
8. 按兩次 [確定]

如此便會確認變更,然後關閉對話方塊。

數位簽署表單範本

此適用於 InfoPath 2003 Service Pack 1。如果您使用信任的憑證簽署表單範本,可以將表單範本的安全性層級設定為「完全信任」。「完全信任」表示表單可以存取使用者電腦或不同網域中的檔案和設定。此外,您可以使用電子郵件程式將表單範本和更新後的表單範本傳送給他人,以部署及更新表單範本。

如果要使用信任的憑證數位簽署表單,請執行下列步驟:
1. 在「設計」模式中,按一下 [工具] 功能表中的 [表單選項]
2. [表單選項] 對話方塊中,按一下 [安全性] 索引標籤。
3. [表單簽署] 下,按一下以選取 [簽署此表單] 核取方塊。
4. 按一下 [選取憑證]
5. [選取憑證] 對話方塊中,按一下您要用於數位簽署表單的憑證。
注意 如果憑證在使用者的電腦上不受信任,Microsoft Office InfoPath 2003 會顯示安全性訊息,並要求使用者要先啟用對憑證發行者的信任,才能開啟表單。

回此頁最上方

参考

如需有關如何取得 Microsoft Office 最新版 Service Pack 的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
870924 (http://support.microsoft.com/kb/870924/) 如何取得 Office 2003 的最新 Service Pack

回此頁最上方


這篇文章中的資訊適用於:
Microsoft Office InfoPath 2003
Microsoft Office InfoPath 2003, Service Pack 1 (SP1)

回此頁最上方

關鍵字: 
kbdownload kbprb kbautomation kbnofix KB832512

回此頁最上方

Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。