原创 萬向節死鎖 Gimbal Lock

                                                                                萬向節死鎖 Gimbal Lock     在學習計算機動畫課程的時候,書中提

原创 ATL: 理解窗口特徵(Window Traits)

理解窗口特徵          在創建一個ATL窗口對象時,窗口特徵類提供了一種簡單的方式來標準化窗口的風格。窗口特徵被當成模板參數被CWindowImpl以及其它ATL窗口類所接受,從而在類的級別上爲窗口提供缺省的窗口風格。      

原创 C++爲什麼難學

很多人第一次應聘C++程序員崗位的時候,會在自己的簡歷上寫下“本人精通C++”,這往往將帶來兩個結果:一是在技術面的時候就被多個HR輪番鄙視;二是僥倖進入公司,卻因此成爲同事們幾個禮拜的笑料。總之被笑話在所難免!也許有些誇張,不過 C++

原创 理解智能指針(Smart Pointer)

智能指針(smart ponter)是一項十分巧妙的C++編程技術,現在已經發展得相當成熟,運用也相當廣泛。你一定對STL中的auto_ptr、shared_ptr毫不陌生,它們就是智能指針的具體實現。本文並不會詳解auto_ptr和sh

原创 使用const提高函數的健壯性

看到const關鍵字,C++程序員首先想到的可能是const常量。這可不是良好的條件反射。如果只知道用const定義常量,那麼相當於把火藥僅用於製作鞭炮。const更大的魅力是它可以修飾函數的參數、返回值,甚至函數的定義體。 const是

原创 探祕窗口過程函數(WndProc)的Thunk技術

最近看了一篇講ATL Thunk技術的好文章(下載),收穫較多,在此做一個總結。 Thunk技術的由來 我們知道,經典的Windows程序設計採用純Windows API來實現,創建一個窗口必須嚴格遵循“定義窗口類,註冊窗口類,創建窗口,

原创 VS源文件提取工具vsjuicer 實現細節

程序的主體框架如下列代碼所示: //by btwsmile #include "stdafx.h" #include "juice.h" // entry int _tmain(int argc, _TCHAR* argv[]) {

原创 POJ1013 Counterfeit Dollar 解題報告

題目描述 http://poj.org/problem?id=1013 有12枚硬幣(標記爲A-L),其中有1枚是假幣,但不知道假幣比真幣更輕或更重。Sally藉助於天平,設計出一種方案,可以恰好三次測量出誰是假幣、比真幣更輕或更重。要求

原创 WTL::CString的一點缺陷及修改

前言          在以前我做過的一個使用了WTL的項目中碰到過一個很有趣的問題。我們先是做了一個原型版,是一個單獨的EXE。後來將它分成了不同的模塊,除了界面部分,其他模塊都用DLL實現。在無界面的DLL模塊中大量使用了WTL::C

原创 一道微策略校招筆試題

MicroStrategy的題目出得真心有水平,下面是其中一道。 判斷一棵二叉樹是否爲二叉搜索樹(binary search tree),二叉搜索樹滿足下列條件: 1. 根節點的值(key)比它的左子樹所有節點的值都要大,比它的右子樹所有

原创 編程讓任務管理器中CPU佔有率呈現正弦曲線

《編程之美》的第一個問題:如何編程讓任務管理器中CPU佔有率呈現正弦曲線,博主嘗試了一下,得到如圖的結果。 博主寫出的代碼如下所示: #include <stdio.h> #include <stdlib.h> #include <ma

原创 C++流操作之fstream

在Windows平臺對文件進行存取操作可選的方案有很多,如果採用純C,則需要用到File*等,當然也可以直接調用Windows API來做;如果採用C++,首先想到的就是文件流fstream。雖然在COM層面上,我們還可以使用IStrea

原创 C++文件流ios::binary的作用

在創建文件流時,可以顯示指定它的打開方式爲ios::binary,也就是以二進制方式打開。但是,無論是否指定二進制方式打開文件,讀寫的最小單位都是字節。那麼,它到底起到什麼作用呢?以二進制方式打開與普通打開方式的區別是什麼? 實際上,二者

原创 一道百度校招筆試題

要求是編碼實現htons方法,將整數轉換成適合傳輸的網絡字節序。 這道題要考慮幾個要點: 1. htons的簽名式是怎樣的? 2. 如何用C語言實現? 第一個問題考察你對socket編程是否瞭解,因爲htons是Win socket庫函數

原创 光標閃爍問題的解決辦法

在調用Windows API函數SetCursor設置光標時,可能會碰到閃爍的問題:移動鼠標,光標在Class Cursor(即註冊窗口類時指定的Cursor)與預設Cursor之間閃爍。 在MSDN上有關SetCursor函數的備註中強