原创 C++ 函數調用方式(_stdcall, _pascal, _cdecl...)總結

__stdcall:       _stdcall 調用約定相當於16位動態庫中經常使用的PASCAL調用約定。在32位的VC++5.0中PASCAL調用約定不再被支持(實際上它已被定義爲__stdcall。除了__pascal外,__

原创 腳印--看過的書

這些是我畢業之後看過的書或接觸過的軟件:   用過的軟件: Google SketchUp 7 漢化版 pkpm3d-佳園-園林設計 AutoCAD 2004 Autodesk 3ds Max 2010 VRP-中視典 仔細看過的書:

原创 函數的解析之C/C++

      函數是程序的執行模塊,是整個項目的細胞,如何組織好每一個函數的結構,如何提高程序的可讀性和運行效率,是程序員們不斷品味的主體。有時函數的設計能直接體現出程序員對C/C++的理解和感悟。         C/C++的函數類型不對

原创 模板和泛型編程

      C++之父Bjarne Stroustrup認爲模板和泛型編程是現代C++的核心,是無損效率、類型安全代碼的關鍵。然而它們並不適合經典的面向對象編程思維模型。C++的強項恰恰在於它支持多種有效的編程風格(多種的思維模型,如果你

原创 如何加快C++代碼的編譯速度-以及stdafx.h解析

C++代碼一直以其運行時的高性能高調面對世人, 但是說起編譯速度,卻只有低調的份了。比如我現在工作的源代碼,哪怕使用Incredibuild調動近百臺機子,一個完整的build也需要四個小時,恐怖!!!雖然平時開發一般不需要在本地做完整的

原创 MFC之控件擴展

      MFC給程序員們提供了一個很強大的開發模板用於Windows編程,簡單的界面創建方法更是方便了程序員。但是MFC提供的界面控件雖然挺多挺強大,但卻不能滿足某些功能的特殊需求。還好,C++的類繼承機制和MFC精緻的設計給我們帶來

原创 全局變量管理方案

1. 在stdafx.cpp中加入:int myInt;  然後在stdafx.h中加入:extern int myInt。這樣定義以後無論在什麼文件中都是可見 3. 應用程序類的主頭文件處定義變量,在程序的任何地方,都可以用AfxGet

原创 架構師

我最早聽說“軟件架構”這個概念以及UML的名字,是在1999年的水木清華BBS上。當時有一篇文章介紹了軟件架構作爲一個相對獨立的領域的發展情況,順便提到在此前一年被接納爲OMG標準的UML。該文作者斷言,UML的出現將能“徹底”改變軟件開

原创 字符集之 MBCS與UNICODE使用問答

1. 如何取得一個既包含單字節字符又包含雙字節字符的字符串的字符個數? 可以調用Microsoft Visual C++的運行期庫包含函數_mbslen來操作多字節(既包括單字節也包括雙字節)字符串。 調用strlen函數,無法真正瞭

原创 字符集之 代碼書寫和底層探索

遭遇問題: 1.工程配置爲多字節字符集時,工程中代碼書寫用寬字節字符類型和函數的情況是基本無實際用途的,因爲我用了MFC等三方庫,界面顯示到底是由它負責的,在機子配置是非本地語言的情況下界面顯示還是亂碼,原因估計是三方庫這部分還是處理成了

原创 二. Windows 剪貼板

一、概述  ---- 在Windows操作系統中存在兩種剪貼板機制:Windows標準剪貼板和OLE剪貼板機  制。  ---- 標準的Windows剪貼板是一個被所有Windows應用程序共享的系統服務,因此它並  沒有自己的句柄或類。

原创 軟件安裝卸載後爲何要重啓

 什麼有些軟件要安裝,直接拷貝過去不能用?爲什麼一些軟件安裝或卸載之後要重啓。這就需要我們知道軟件安裝時都幹了些啥? 首先,在不同版本的操作系統上,如WINDOWS98,WIN2K和WINXP等上它們都有共同點的地方。這裏不針對具體的某個

原创 3D 遊戲爲什麼選擇OpenGL

對於3d 圖形程序員,看到了這個標題,可能想到了硝煙瀰漫的API大戰… 首先聲明,這篇文章並不參戰,當然也不希望任何人利用本文的觀點作爲API戰爭的佐證,本文是要客觀的闡述OpenGL 足以實現現代遊戲的3d圖形表現需要,而不是要貶低其它

原创 windows消息隊列

  本節詳細描述消息和消息隊列以及如何在你的程序中使用他們。 關於消息和消息隊列 與傳統的應用程序不同,Microsoft Windows應用程序並不顯式地用一個函數的調用(如c運行庫)來獲取輸入,而是,

原创 讓程序在崩潰時體面的退出

一、 讓程序在崩潰時體面的退出之Unhandled Exception : 程序是由代碼編譯出來的,而代碼是由人寫的。人非聖賢,孰能無過。所以由人寫的代碼有缺陷是很正常的。當然很多異常都在開發階段被考慮到而添加了處理代碼,或者用try/c