原创 《PicSi的實現細節》 第4節 主窗口CMainDlg的定義及雜項

        主窗口CMainDlg的定義很好理解,雖然簡單但卻至關重要,畢竟Creator子窗口、About子窗口都被主窗口管理,它就是PicSi的“領導”,對全局進行控制。        首先需定義3個控制成員變量m_tab、m_c

原创 感知this指針 人工傳遞this指針技巧

引入 C++與C明顯的不同之處就是C++對類(class)的支持,這也是C++最初被稱作C with classes的原因。我們知道類是屬性和行爲的封裝,它既包含成員變量,也包含成員函數(或稱方法)。如果成員變量是私有的,外界則無法直接訪

原创 《PicSi的實現細節》 第2節 窗口類CAboutDlg的定義

爲了把重點集中在窗口類的定義方法上,本節以較爲簡單的AboutDlg爲例,闡述如何定義窗口類。 在第一節中,我們已經在Resource View(資源視圖)中添加了所需的窗口。在這裏簡單總結一下:向主窗口中添加Tab控制,用作菜單選項卡

原创 《PicSi的實現細節》 第0節 下載方式及使用說明

     單擊此鏈接可下載PicSi。      PicSi是一個"內涵圖"製作小工具。 所謂"內涵圖",顧名思義就是在一張圖片中"內涵"有其它信息(mp3, bt種子等)。PicSi的名字也源於此, Pic表示圖片(Picture),

原创 HRESULT的祕密

    長時間進行Windows編程的人一定對HRESULT特別熟悉,因爲HRESULT作爲一種函數的返回值類型曝光率實在太高了,可是你是否知道HRESULT到底是什麼?爲什麼不直接使用簡潔又親切的BOOL作爲函數的返回值類型呢?    

原创 《PicSi的實現細節》 第1節 界面的佈局

     PicSi是不久前博主利用業餘時間編寫的一個小工具軟件,雖然它的功能十分簡單,但卻是一個小型軟件開發的好例子。PicSi採用Visual Studio 2010 + WTL框架,代碼總計700行左右。《PicSi的實現細節》一共

原创 可持續發展的程序設計

        爲什麼很多程序被用戶用了一次就扔掉?一方面在中國,軟件基本上是不花錢的;另一個方面,用戶往往只有單次的功能需求。不過,本文並非討論如何避免這種事情發生,而是要站在程序員的角度去考慮另外一個類似的問題:很多我們曾經寫過的代碼

原创 計算機到底是什麼

從聽說計算機,到接觸計算機,再到將計算機作爲自己的專業,我一直在尋找一個問題的答案:計算機到底是什麼? 從感觀上講,計算機是神祕的,它能做到很多振奮人心的事情。深藍計算機早在60年代就戰勝了卡斯帕羅夫,一定程度上挑戰了人類的智慧。之後又有

原创 強制修改const char*類型的數據

C++是一門類型安全(type-safe)的編程語言,它對類型的檢查是十分嚴格的。一個const char*類型的數據是不允許被修改的,如果程序違反了這條規定,編譯器將毫不留情地提示錯誤,不讓通過。作爲程序員,須知道這樣的限制是很有實際意

原创 模板化繼承、泛型繼承、Veneers的概念解析

         Veneers的概念相當簡單,一個Veneer其實就是一個類模板,它擁有以下特徵:          1)它從自己的主模板參數派生而來(常以public方式)          2)它不定義任何虛方法         

原创 窺探迭代器(iterator)的真相

在前面的文章中,我們曾自定義了一個迭代器類line_iterator,不過它並不具有通用性。現在藉助於模板,我們來定義一個模板化的迭代器。仍然延續線性查找的思路,首先將SimpleFind()函數改寫成函數模板tFind(),代碼如下所示

原创 詳解masm編譯環境的搭建

首先下載Masm615以及textpad,建議使用textpad英文版,下面以TextPad 5.4爲例,說明編譯環境的搭建方法。 安裝好textpad之後,啓動後的界面是這樣的: 一、類型過濾:支持*.asm文件格式 點擊Config

原创 剖析STL auto_ptr源碼

文件memory中第848行 -  975行是auto_ptr的全部定義,如需查看源碼請轉看本文末尾的附錄。auto_ptr的作用不必多說,它在拷貝構造和賦值操作時的“所有權”轉移也被人熟知也不再贅述,本文主要是希望通過剖析STL aut

原创 函數指針vs函數對象

       在C/C++中,我們可以將函數當作普通的變量傳遞給另外一個函數以便定製函數的功能。比如實現排序功能的函數sort(),我們既可以選擇從小到大的順序也可以選擇從大到小的順序,只要傳遞給sort()不同的比較函數就可以了。不過,

原创 《PicSi的實現細節》 第3節 窗口類CPicSiCreatorDlg的定義

       這一節是本系列文章中最重要的部分,因爲CPicsiCreatorDlg類是Main子窗口的實現類,它是PicSi的功能主體。有了第2節作爲基礎,相信大多數朋友對CPicSiCreatorDlg的主框架是不陌生的。因此,本節將