Time of Update: 2017-02-27
我們知道,C#的文法與C++非常相似,實現從C++向C#的轉變,其困難不在於語言本身,而在於熟悉.NET的可管理環境和對.NET架構的理解。儘管C#與C++在文法上的變化是很小的,幾乎不會對我們有什麼影響,但有些變化卻足以使一些粗心的C++編程人員時刻銘記在心。在本篇文章中我們將討論C++編程人員最容易犯的十個錯誤。陷阱1:
Time of Update: 2017-02-27
VC++只提供了刪除一個空目錄的函數,而用往往希望刪除其下有很多子目錄與檔案的目錄。為了實現這一功能,下面編寫了DeleteDirectory 函數,它可以實現這一功能。函數原型:BOOL DeleteDirectory(char *DirName);傳回值:成功刪除時返回TRUE,否則返回FALSE參數DirName為要刪除的目錄名,必須為絕對路徑名,如“c:\\temp"。函數定義如下:BOOL DeleteDirectory(char
Time of Update: 2017-02-27
char *strcpy(char *s1, const char *s2)將字串s2複製到字串數組s1中,返回s1的值char *strncpy(char *s1, const char *s2, size_t n) 將字串s2中最多n個字元複製到字串數組s1中,返回s1的值char *strcat(char *s1, const char *s2)將字串s2添加到字串s1的後面。s2的第一個字元重定義s1的null終止符。返回s1的值char *strncat(char *s1,
Time of Update: 2017-02-27
1、調試標記適用預先處理#define定義一個或多個調試標記,在代碼中把調試部分使用#ifdef和#endif進行管理。當程式最終調試完成後,只需要使用#undef標記,調試代碼就會消失。常用的調試標記為DEBUG, 語句序列:#define DEBUG#ifdef
Time of Update: 2017-02-27
如果您要在應用程式中處理Word文檔,可以參考MSDN. Lori Turner. Automating Microsoft Office 97 and Office
Time of Update: 2017-02-27
在准標準C++中,有關預設變數值的限制非常模糊。基於此,很多編譯器允許開發人員將預設變數值包含在函式宣告,指向函數的指標和引用,成員函數的指標,以及typedef聲明中。請看一下以下的程式:struct A{void func(int x=5){}};void g(int n=12){}// 根據C++標準,不能在以下聲明中使用預設變數值。void (*pf)(inti=120);void (A::*pmf)(int j=50);typedef void (*PF)(inti=100);//
Time of Update: 2017-02-27
Eiffel和C++都提供了多繼承的機制。但Java卻沒有,因為它認為多繼承會導致許多問題的出現。不過Java提供了介面(interface)作為一種替換機制,它類似於Objective
Time of Update: 2017-02-27
聯編是指一個電腦程式自身彼此關聯的過程。按照聯編所進行的階段不同,可分為兩種不同的聯編方法:靜態聯編和動態聯編。靜態聯編靜態聯編是指聯編工作出現在編譯串連階段,這種聯編又稱早期聯編,因為這種聯編過程是在程式開始運行之前完成的。在編譯時間所進行的這種聯編又稱靜態束定。在編譯時間就解決了程式中的操作調用與執行該作業碼間的關係,確定這種關係又稱為束定,在編譯時間束定又稱靜態束定。下面舉一個靜態聯編的例子。 #include class Point{public:Point(double i,
Time of Update: 2017-02-27
本文給出一個關於繼承性的綜合例子,該例子編寫一個有關日期(年、月、日)和時間(時、分、秒)的程式。該程式建立三個類,其中一個是日期的類Date,一個是時間的類Time,另一個是日期和時間類DateTime,它是前面兩個類為基類的衍生類別。下面是該程式的源碼:#include#include#includetypedef char string80[80];class Date{ public: Date() {} Date(int y, int m, int d) { SetDate(y,
Time of Update: 2017-02-27
困難度之一“C++ 是個難學易用的語言”,這句話相信很多人都心有戚戚。C++的學習難度,一在於語言本身太多的“幕”,另一個就在於 "paradigm shift" (思考模式的移轉)。傳統語言如 C, Pascal, Basic, Fortran...,除了模樣看起來稍有不同,基本上都是函式 call 來 call 去,大同小異,很容易掌握。你想做的動作,在 code
Time of Update: 2017-02-27
假設你正在一個包含矩形的應用程式上工作。每一個矩形都可以用它的左上方和右下角表示出來。為了將一個 Rectangle 對象保持在較小狀態,你可能決定那些點的定義的域不應該包含在 Rectangle 本身之中,更合適的做法是放在一個由 Rectangle 指向的輔助的結構體中:class Point { // class for representing points public: Point(int x, int y); ... void
Time of Update: 2017-02-27
C++ Builder中的列表框和下拉式方塊控制項都已經提供了自繪畫介面。使用這些介面可以實現把列表框和組合框中的項目顯示為映像。如果把這種功能封裝成組件就更妙了,下面以列表框為例,示範這一過程。一
Time of Update: 2017-02-27
本文介紹了在Win 98環境下,如何利用C++ Builder和Windows的Api函數建立滿足使用者特定需求的Combo框,並且通過Api函數擴充了C++ Builer標準組件的功能。在C++ Builder
Time of Update: 2017-02-27
在編寫程式的過程中,經常要用到各種資源。比如說,想給自己的程式換個自己的表徵圖,使用一些活潑的游標來增加趣味性,播放一些聲音和動畫檔案,或者使用別人寫好的程式來實現某個功能。我們往往希望將這些資源直接放到EXE檔案中以形成一個單獨的可執行檔,這就存在一個如何在運行時訪問和使用這些資源的問題。----在編譯期間,這就要用到一種檔案,以.rc結尾的資源定義檔案。----一:RC檔案----
Time of Update: 2017-02-27
利用C++Builder我們可以輕鬆地實作類別似Windows的Explorer的分類樹。OK,Let's go.我們需要一個TTree和一個TImageList控制項。如何獲得系統的盤符呢?Borland給我們提供了一個TDriveType類,什嗎?協助裡找不到,呵呵,這是實現TDirectoryComboBox用到的一個類,協助裡當然沒有了,它的定義如下:typedef enum ATTR { atDirectory,atFile} Attr;struct
Time of Update: 2017-02-27
在編程的過程中,檔案的操作是一個經常用到的問題,在C++Builder中,可以使用多種方法對檔案操作,下面我就按以下幾個部分對此作詳細介紹,就是:1、基於C的檔案操作;2、基於C++的檔案操作;3、基於WINAPI的檔案操作;4、基於BCB庫的檔案操作;5、特殊檔案的操作。壹、基於C的檔案操作在ANSI C中,對檔案的操作分為兩種方式,即流式檔案操作和I/O檔案操作,下面就分別介紹之。一、流式檔案操作這種方式的檔案操作有一個重要的結構FILE,FILE在stdio.h中定義如下:typedef
Time of Update: 2017-02-27
一.
Time of Update: 2017-02-27
一、程式設計原理我們知道檔案之所以能夠被分割是因為所有檔案都是以二進位的形式儲存的,然後再根據檔案系統的相應規定來進行讀取處理。我們基於這個原理,把所有類型的檔案都以二進位進行讀寫,合并時再以二進位的格式把分割後的檔案重新重新組合起來,這樣就實現了對檔案的分割與合并。二、程式設計過程及祥解1.我們先在c++ builder
Time of Update: 2017-02-27
C++Builder是Borland公司繼Delphi之後又一成功的產品,她集VB、VC++ 及 Delphi 的優點於一體而深得C語言愛好者的青睞。由於多數操作者愛用 MicroSoft公司的Excel組織資料,為此本文介紹了用C++Builder存取Excel 檔案的兩種方法。一.用OLE技術操縱ExcelOLE(對象連結與嵌入)是微軟提出的標準,是應用程式間交換資料、相互操作的一種方式,MS OFFICE 提供了很強的 OLE 服務功能,VB、Delphi
Time of Update: 2017-02-27
在編程時,經常有一些針對目錄的操作,如開啟目錄對話方塊選擇一個目錄,直接建立多級目錄,直接刪除多級目錄,判斷某個目錄是否存在等。本文就這些問題給出編程實現方法,並給出詳細的程式碼,供各位編程愛好者參考。一、判斷目錄是否存在:C++ Builder中提供了檢查檔案是否存在的函數FileExists,但沒有提供檢查目錄是否存在的函數,我們可以用Windows API函數FindFirstFile實現這個功能。程式實現如下:設char *Dir為帶判斷的目錄bool Exist;