原创 適配器的編程

  反向迭代器   反向迭代器是一種反向遍歷容器的迭代器。也就是,從最後一個元素到第一個元素遍歷容器。反向迭代器將自增(和自減)的含義反過來了:對於反向迭代器,++運算將訪問前一個元素,而--運算則訪問下一個元素。   (1)反向迭代

原创 WTL 學習筆記 -- 消息流

  正如剛從DOS轉到Win32下寫程序時,總是爲找不到main函數而感到不爽,學習時WTL時,第一反應是找GetMessage和DispatchMessage,想知道消息是如何分發到窗口的。   在_tWinMain裏做了一些初始化函數

原创 什麼情況下可能出現臨時對象?

 1、傳值參數(pass-by-value parameter) 代碼: void func(String str) { cout << str; } 當進行這樣一個調用時: 代碼: String s;

原创 在CPP中調用Jscript中的函數

  在CPP中調用Jscript中的函數   在C++中調用Jscript的函數非常簡單,Windows提供了一個msscript.ocx的控件,利用這個控件可以直接操作Jscript: 執行一段Jscript腳本,或者調用指定的函數。我

原创 儘可能使用 const

  const令人讚歎之處就是:你可以通過它來指定一個語義上的約束(一個特定的不能夠更改的對象)這一約束由編譯器來保證。通過一個const,你可以告訴

原创 引用

 1. 聲明引用變量的方法是在類型名後面加一個&符號,實際上&與變量名捆綁使用,如:string &str;2. 一個引用指向一個對象,是現有對象的別名3. 一旦創建了引用並初始化引用某特定對象,那麼它將總是引用此對象4. 常量引用不能用

原创 vc++之剪貼板通信實例

 操作系統中實現同一臺機器上的不同進程之間的通信是非常重要的。一般來說,進程間的通信方法有三種:剪貼板、郵槽和管道。由於後兩種方式需要一定的操作系統基礎,此處就不作介紹。本節將詳細介紹採用剪貼板進行進程通信的實現。剪貼板常用函數讀者應該對

原创 WTL 學習筆記 -- CSplitterWindow

  SplitterWindow在Win32下已經用得很普遍了,但是並沒有這樣一個基本控件,用SDK開發應用程序,如果有需要,就得自己寫這樣一個控件。MFC裏提供了這樣一個控件,但只能在SDI/MDI裏使用,而不能在對話框裏使用。   實

原创 實現COM消息廣播

  大家都知道,爲ActiveX控件添加事件處理函數是件容易的事情,IDE已經提供相應的Wizard,爲ActiveX控件添加事件處理函數和爲一般控件添加事件處理函數沒有什麼兩樣。而爲普通COM組件添加事件處理函數,就沒有這麼直觀了,必須

原创 深入探究內聯函數

  內聯函數——多麼振奮人心的一項發明!它們看上去與函數很相像,它們擁有與函數類似的行爲,它們要比宏(參見第 2 條)好用的多,同時你在調用它們時帶來

原创 WTL 學習筆記 -- ResizeDialog

 寫過一個ActiveX控件,只要把它放在對話框上,它遍歷對話框上的所有控件,並把它們管理起來,只要對話框大小變化時,它自動調整各個控件的大小和位置。這可能是我寫的第一個ActiveX控件,比較失敗,雖然功能實現了,但只是無條件的縮放控件

原创 C++多態技術---靜態多態和動態多態

多態(polymorphism)一詞最初來源於希臘語polumorphos,含義是具有多種形式或形態的情形。在程序設計領域,一個廣泛認可的定義是“一種

原创 讓賦值運算符返回一個指向 *this 的 引用

  關於賦值有許多有趣的事情,其中之一就是:你可以把賦值操作連在一起: <?xml:namespace prefix = o ns = "urn:sc

原创 常量指針 和 指針常量

 在C++的學習中,有人經常搞不清楚“常量指針”和“指針常量”這兩個概念。其實簡單一點講,“常量指針”所指向的地址上的數據是常量,而“指針常量”所指向

原创 SAFEARRAY使用方法示例

  l         創建                             long i = 0;                             VARIANT va = {0};