程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Vista系統中C++ Builder還這麼好使嗎?

Vista系統中C++ Builder還這麼好使嗎?

編輯:C++入門知識

C++ Builder可以編譯所有符合ANSI/ISO標准的原代碼,支持最新ANSI C++/C語言特征:模板、例外、運行、以及Namespaces等,下面著重說明下在Vista系統中C++ Builder的開發工作。

注意:當然,這裡所說的讓位,是指RAD;這裡所提的“VS2005及以後的版本在Vista下將只支持C++托管代碼的開發”來自6月8號在西安參加CodeGear的新品發布會時范路先生所說。

個人很喜歡C#,一方面類庫強大,另一方面因為C#的架構師Anders Hejlsberg(我很佩服,呵呵)。不管MS有多少不好,基於MS和Windows的強大,掌握MS陣營的一種或多種工具很是很有必要的(我只是開源和Linux的擁護者,非常不狂熱),所以我選擇了C#。扯遠了。

C++ Builder2007支持Vista下的原生代碼開發,也只支持這種方式。但是不要以為原生代碼實現不了Vista的特殊效果。范路先生說了。這是C++ Builder及以後的版本的定位,也因為MS將放棄VC++在Vista下的原生代碼開發,將會給予C++ Builder一條生路(同眼下相比)。

忘了Delphi是什麼定位了,可能范路先生沒有說。難道還是雙管齊下?不知道在Vista時代C++ Builder能否重振雄風:)更有可能的是三國時代(上一次是Borland、MS和賽門鐵克)重現--在原生代碼領域?托管還是原生,每個人的偏愛都不一樣--如果你不喜歡C++的話。

  • 如何更好的進行C++代碼編譯
  • C++標准庫如何實現共享內存介紹
  • 透析C++代碼實現ControlTemplate
  • 淺析Visual C++應用程序實現方法
  • 處理C++時注意事宜介紹

不在此列,哈哈--如果不出意外(喜歡C++ && 原生代碼 && RAD的大有人在;來分C++原生代碼RAD的公司姗姗來遲),MS就把一部分江山拱手相讓了;這樣也好,競爭對手也是一種推動力。C++ Builder生成新的控制台應用程序時會自動加上這條語句。這在你所用的程序中不是必須的,所以代碼清單中將其省略。無論有無這條語句,程序運行結果是一致的。

分析輸出結果為:x=32767 x=32768如果用int數據類型,則不會有這個問題,因為int數據類型的取值范圍在正向20億之間,一般不會有繞回的問題。但這時程序可能會稍大一些,因為int需要4字節存儲,而short只需要2字節存儲。

對於大多數應用程序,這個差別是不顯著的。前面介紹了自動類型換算。有時C++無法進行換算,這時可能在編譯器中產生編譯錯誤,說Cannot convert from x to y(無法從x換算到Y)。

編譯器也可能警告說Conversion might lose significant digits換算可能丟失顯著位)。提示 編譯器警告應當作編譯器錯誤。因為它表明出了錯誤。我們應努力生成無警告的編譯。有時警告無法避免,但一定要認真檢查所有警告。應充分了解警告的原因並盡量予以糾正。

說明 這裡介紹的字串操作是C語言中的字串處理方法。大多數C++編譯器提供了cstring類,可以簡化字串的處理(C++ Builder的Visual構件庫中有個AnsiString類,可以處理字串操作。

C++ Builder聯機幫助中詳細介紹了AnsiString類)。盡管C語言中的字串處理方法比較麻煩,但並不過時,C++編程人員經常在使用cstring類和AnsiString類等字串類的同時使用C語言中的字串處理方法。這裡不想對表中的每個函數進行舉例說明,只想舉兩個最常用的函數。strcpy()函數將一個字串復制到另一字串中,源字串可以是變量或直接字串。例如下列代碼:

  1. //set up a string to hold 29 characters   
  2.  
  3. char buff[30];   
  4.  
  5. //copy a string literal to the buffer   
  6.  
  7. strcpy (buff,"This is a test.");//display it   
  8.  
  9. cout << buff << end;   
  10.  
  11. //initialize a second string buffer   
  12.  
  13. char buff2[]="A second string.";   
  14.  
  15. //copy the contents of this string to the first buffer   
  16.  
  17. strcpy (buff,buff2);   
  18.  
  19. cout << buff << end1;  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved