原创 MFC六大關鍵技術之仿真學習筆記(二)

       上一節簡單學習了關於MFC中簡單的層次結構,而MFC程序的初始化過程究竟是怎麼樣的呢,與普通Win32初始化的聯繫又在哪呢?         Win32程序通過RegisterClass,CreateWindow,ShowW

原创 MFC六大關鍵技術之仿真學習筆記(一)

       相信大多數MFC初學者都有一種這種感覺,MFC的框架如此複雜,宏定義虛函數讓你不知所措,和傳統的Win32SDK編程相比,MFC確實讓你足夠頭疼,粗略看看你發現找到Winmain和WndProc都不是一件容易的事。《深入淺出

原创 MFC六大關鍵技術之仿真學習筆記(三)

       如果你感覺前面兩節一帆風順的話,或許從第三節開始,你會感覺理解有一點點困難,或許讀完整節,你只能MFC說有這麼一個東西,但是並不明白這樣設計的好處或如何去使用,別急,讓我們慢慢來學習它。 *RTTI(運行時類型識別)  

原创 C語言優先級之計算總結

今天在網上博客上發現一個很好的優先級記憶方法,鏈接:http://blog.csdn.net/skywalker_leo/article/details/6237222 此貼用來積累關於優先級的計算: (1) int x =

原创 C語言 printf計算順序和壓棧順序初探

不同編譯器產生的結果不同,本文測試環境爲VS2013和VC6.                                                                                        

原创 淺談C++結構體的內存對齊

最近在認真學習C++基礎,就此對於結構體的內存對齊做個學習筆記                                                                                        

原创 C++實現遠程桌面集羣軟件

由於在學校需要管理很多主機的需要,自己動手寫了個3389桌面集羣的軟件。 軟件很簡單,分別用2種方式實現: (1)快速登入模式: 微軟的MsRdpClient ActiveX控件實現 (2)遠程桌面模式:生成.rdp文件實現      

原创 淺談C++類大小以及內存佈局

寫代碼不自然的都會用到有關Class的內容,現在我來淺談一下關於Class大小以及內存佈局的一些問題。                                                                    

原创 __cdecl 與 _stdcall 的棧平衡

各類關於VC的書中都多少寫到: 1、_stdcall調用約定:函數的參數自右向左通過棧傳遞,被調用的函數在返回前清理傳送參數的內存棧。 2、__cdecl是C和C++程序的缺省調用方式。每一個調用它的函數都包含清空堆棧的代碼,所以產生的可

原创 淺談線程同步方法性能比較

簡要將Win32編程中四種同步方式的性能作比較,分別有CriticalSection,Semaphore,Mutex,Event。 已經簡要封裝成了auto_locker,代碼如下: Lock.h #pragma once #includ

原创 C++智能指針的實現

說起智能指針,不少人都不陌生,比如auto_ptr、shared_ptr、unique_ptr、weak_ptr。根據shared_ptr的功能,自己仿造也實現了個。 對於shared_ptr這種智能指針,有一個共享的引用計數器來控制指

原创 Cocoa開發——PIPE通訊框架

進程通訊方式有很多種,OSX系統的進程通訊方式更是多種多樣,筆者暫時只寫過XPC和有名管道通訊的框架,特此記錄一下自己的心得。 首先基於Pipe有名管道的進程通訊,我們將管道創建,打開,讀取,寫入等操作封裝到CPipeWrapper的

原创 如何以Root方式運行Xcode

粗略算一下,在第一次接觸OSX的時候,我接觸Windows已經有14年,剛開始用OSX和Xcode各種不習慣,但是用Xcode寫了一星期的代碼,我卻有一種想把Windows和VS扔了的感覺(真的用着很舒服!)。 最近寫Cocoa,需要對

原创 淺析Scanf源碼

記得當初從C語言學習開始就使用scanf,關於scanf的用法也略知一二,對使用scanf出現的問題並未進行深刻探究,故筆者打算對scanf實現進行探究。 如何找到scanf源碼 關於VC中的CRT代碼在 VS目錄下的\VC\crt\s

原创 C++函數可變參數實現原理探究——以實現printf爲例

當我們構建函數時,如果我們希望得到的是不定的參數,那我們應該怎麼辦呢?下面幾個關鍵的macro上場: #define _ADDRESSOF(v) (&reinterpret_cast<const char &>(v)) typedef