原创 C++淺析——繼承類內存分佈和虛析構函數

繼承類研究 1、 Code 1.1 Cbase, CTEST爲基類,CTest2爲其繼承類,並重新申明瞭基類中的同名變量 class CBase { public: int Data;

原创 CoCreateInstance調用COM接口僞流程

在編寫組件程序時,經常會使用CoCreateInstance直接取COM組件的接口,非常方便,那CoCreateInstance到底幹了些什麼事呢?1、CoCreateInstance取COM組件的接口的基本流程 //參數:rclsid

原创 編寫NPAPI plugin的命名問題

     最近寫了個NPAPI的插件,在chrome上用得好好的,結果在火狐上死活不認我的插件,找了N多資料最後在官方的說明裏才找到說火狐瀏覽器的插件的文件名必須是以np開頭的,立刻吐血三升,難怪被chrome拋棄。 點贊

原创 C++淺析——返回對象的函數

一、原碼分析1.1 測試代碼    爲了方便查看拷貝構造函數調用過程,自定義了拷貝構造函數,但啥也沒幹。 class CTEST { public: int m_nData;

原创 C++淺析——虛函數的動態和靜態綁定

源自一道面試題,覺得很有意思 class CBase { public: virtual void PrintData(int nData = 111); }; void CBase::Prin

原创 搜狗瀏覽器查看合法插件的方法

大家都知道在chrome中查看瀏覽器支持插件是在地址欄輸入 chrome://plugins 即可,但搜狗瀏覽器雖然是基於chromium內核的,但用此方法卻不行。  但可按F12調出控制檯面板,然後輸入navigator.plugins

原创 Interlocked系列函數線程同步的缺陷

1、 Code int Work() { while (m_lInterlockedData < 10) { InterlockedIncrement(&m_lInterlockedData); Sleep(100);

原创 VS2010最常用快捷鍵

1、選擇類 F8 當前位置變成選定區域的頭/尾(再移動光標或者點鼠標就會選定) Ctrl + F8 當前行變成選定區域的頭/尾(再移動上下光標或者點鼠標就會選定多行) CTRL + W 選擇當前單詞 Ctrl + Shift + ← 選定

原创 網頁中調起本地程序系列——簡介篇

 由於網頁及瀏覽器的各種限制,很多事情我們通過js等編碼並不能達到我們想要的目的,我們需要調起本地執行程序來幫助我們做一些更強大的事情,這時候問題來了,如何才能調起我們本地程序?下面列出目前可用的幾種方法及其缺陷(主要以IE和Chrome

原创 C++淺析——繼承類中構造和析構順序

先看測試代碼,CTEST 繼承自CBase,幷包含一個CMember成員對象: static int nIndex = 1; class CMember { public: CMember()

原创 大話設計模式C++版——裝飾模式

       女人常說男人喜新厭舊,只見新人笑,那聞舊人哭,但裝飾模式(Decorator)卻是一種結交新朋友不忘老朋友的設計模式,非常適合去古代當老公(現代是不行的,因爲只能娶一個老婆了)。裝飾模式的本質是每一個裝飾對象都被保留一個被其

原创 C++淺析——虛表和虛表Hook

爲了探究虛表的今生前世,先來一段測試代碼 虛函數類: class CTest { public: int m_nData; virtual void PrintData() { printf("Data = 0x%x\n"

原创 Windbg跟蹤臨界區的BUG

  最近跟蹤了一個程序的界面卡死問題,該卡死偶爾出現,在抓到一次dump後用windbg載入分析,打印出函數調用堆棧後,一眼可以看出是臨界區死鎖了。 代碼: 0:000:x86> kb ChildEBP RetAddr  Args to

原创 大話設計模式C++版——代理模式

    本篇開始前先發個福利,程傑的《大話設計模式》一書高清電子版(帶目錄)已上傳至CSDN,免積分下載。 下載地址:http://download.csdn.net/detail/gufeng99/8843487     代理模式是一種

原创 大話設計模式C++版——表驅動法改造簡單工廠

上回《大話設計模式C++版——簡單工廠模式》中指出了簡單工廠模式的缺陷,即違背了開發—封閉原則,其主要原因是由於switch的判斷結構的使用,使修改或添加新的對象時需要改動簡單工廠類的代碼,如何改造switch結構,表驅動法就可以粉墨登場