原创 惡草叢生的陰暗角落---虛擬機制(下)

    虛函數的開銷  人們一提到虛函數,首先想到的是多態,緊接着想到的就是開銷(至少我開始的時候就是這樣子的),那麼虛函數的開銷來自哪裏?開銷究竟有多大?  在理論上來講,虛函數所帶來的動態開銷主要依賴於3個方面:編譯器、操作系統和機器

原创 門面模式(Façade Pattern)

模式產生的背景<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 1、沉重的網絡負擔 在沒有SessionBean的時候,客戶端直接同底

原创 深度解析VC中的消息(下)

  前面,我們分析了消息的基本理論和基本的函數及用法,接下來,我們將進一步討論消息傳遞在MFC中的實現。   MFC消息的處理實現方式  初看MFC中的各種消息,以及在頭腦中根深蒂固的C++的影響,我們可能很自然的就會想到利用C++的三大

原创 Java虛擬機

一、 什麼是Java虛擬機 Java虛擬機是一個想象中的機器,在實際的計算機上通過軟件模擬來實現。Java虛擬機有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應的指令系統。 1.爲什麼要使用Java虛擬機? Java語言的一個非常

原创 閒言碎語話編程

     有人說:編程高手==遊戲高手。如果這是真的話,我早就成高手了,因爲在遊戲裏,我早已成爲宇宙總管、富甲天下、仗劍走天涯了。可是我還是一個菜鳥:

原创 深度剖析消息反射機制

    摘要:在前面我們分析了控件通知消息WM_NOTIFY,和WM_NOTIFY緊密聯繫的還有一個MFC新特性:消息反射。本文中,我想就這個問題作一個全面的論述,如果有錯誤,還望各路大蝦批評指正。     什麼是消息反射?    在wi

原创 解除心頭的困惑--純虛函數

     摘要:虛函數裏面有一個很特殊的東東,那就是純虛函數,關於純虛函數的問題也是bbs上常見的話題,這裏我想對此作一個小小的論述,希望能給初學者一個滿意的解釋。 一、引入原因:   1、爲了方便使用多態特性,我們常常需要在基類中定義虛

原创 讀《Efficient C++》疑惑

    當我們進行軟件開發時,如果代碼比較少,我們可以很容易的掌握、瞭解程序的執行情況,但是當代碼超過數千行,特別是達到上萬行的時候,我們就很難準確掌握程序的流程,在這種情況下,進行代碼跟蹤是很重要的一件事情。    代碼跟蹤技術,對於大

原创 計算cpu速度的小程序

以下程序在vc60,console方式下編譯運行通過。大家可以試一試,很準的說。#include <stdio.h>#include <windows

原创 小技巧:一個工具條內放多排按鈕

    有的時候我們需要在一個工具條內放多排按鈕,例如windows自帶的畫圖軟件,怎麼實現呢?這裏有一個小小的技巧,希望你能喜歡:)        首先假定我們的工具條資源號爲IDR_PAINTTOOL;   我們從CToolBar類派

原创 Union的迷思

     聯合(union)在C/C++裏面見得並不多,但是在一些對內存要求特別嚴格的地方,聯合又是頻繁出現,那麼究竟什麼是聯合、怎麼去用、有什麼需要注意的地方呢?就這些問題,我試着做一些簡單的回答,裏面肯定還有不當的地方,歡迎指出! 1

原创 深度解析VC中的消息(中)

     隊列消息和非隊列消息   從消息的發送途徑來看,消息可以分成2種:隊列消息和非隊列消息。消息隊列由可以分成系統消息隊列和線程消息隊列。系統消息隊列由Windows維護,線程消息隊列則由每個GUI線程自己進行維護,爲避免給non-

原创 解析#pragma指令

    在所有的預處理指令中,#Pragma 指令可能是最複雜的了,它的作用是設定編譯器的狀態或者是指示編譯器完成一些特定的動作。#pragma指令對每個編譯器給出了一個方法,在保持與C和C++語言完全兼容的情況下,給出主機或操作系統專有

原创 惡草叢生的陰暗角落---虛擬機制(上)

       摘要:C++是一個惡草叢生的地帶,虛擬機制是很重要,但是很危險的一個C++特性,所以有必要對此作一下闡述,希望能對大家有所幫助。        什麼是虛函數    簡單地說,就是在成員函數前加關鍵字virtual,這樣這個成

原创 解析VC++6中的指針

     摘要:指針,在VC++中是很常見的,這裏我們並不打算去詳細講解在C++中那樣的指針用法(我們會有另外的文章去詳細討論),這裏主要講一下VC++中常見的對指針獲取的方法,包括:工具條、狀態條、控件和窗口的指針。      獲取工具