原创 回調函數的概念與使用

    什麼是回調函數?   簡而言之,回調函數就是一個通過函數指針調用的函數。如果你把函數的指針(地址)作爲參數傳遞給另一個函數,當這個指針被用爲調用它所指向的函數時,我們就說這是回調函數。   爲什麼要使用回調函數?    因爲可以把

原创 文件操作些許方法實現

(1)將已有文件夾中的文件拷貝至另一個文件夾,實現方法如下所示: BOOL CopyDirectory(CString strTargetDir, CString strSourceDir, BOOL bFilterDotName) {

原创 GetVersionEx 獲取系統版本信息

最近在windows 8上獲取系統版本信息需要調用系統API,於是用到了GetVersionEx。 首先看一看函數原型: [cpp] view plain copy BOOL GetVersionEx(POSVERSI

原创 關於回調及其機制

      這裏就不對回調函數的概念進行說明了,請參閱其他資料,下面只對其應用進行說明。       回調可用於通知機制,例如,有時要在程序中設置一個計時器,每到一定時間,程序會得到相應的通知,但通知機制的實現者對我們的程序一無所知。

原创 瞭解HHOOK之路( 四 )

在三的基礎上,我希望通過更得例子來加強學習。唯一不同的是,這次只關注DLL的核心代碼。   代碼一:   通過鉤子獲得鼠標的單擊次數。細想一下,系統的各個進程不共享數據,在單個進程裏或許完全可以不通過安裝鉤子來獲取。但是如果面對

原创 CString的成員函數詳解

CSTRING的成員函數詳解 typedef ATL::CStringT< TCHAR, StrTraitMFC_DLL< TCHAR > > CString; CString的構造函數: 1 CString( ); 2 CStr

原创 error LNK2005: _DllMain@12 already defined in xxx.OBJ 解決辦法

用Visual C++編寫DLL,如果在new project時選了MFC DLL,而後又想寫成Regular DLL,即擁有自己的DllMain()入口函數,則在build時會遇到類似如下的link錯誤:  error LNK200

原创 瞭解HHOOK之路(一)

意外的知道Windows中鉤子機制,通過截獲消息,獲取想知道的密碼,但自己對HHOOK一竅不通,不得不承認,這是一條非常不爽的路。不過,我急切的希望瞭解這方面的內容,原因不能直說,但絕無惡意。     HOOK機制(原理) 在安

原创 鉤子函數概念及其使用案例

鉤子函數聽起來很抽象,其實只要我們瞭解了回調函數,就好理解了,其實鉤子函數就是回調函數的特殊用法, 利用函數指針進行不同函數的調用,實現不同功能。 首先我們對函數指針的用法進行說明,例如,定義函數指針:  int (* g_pFun)

原创 菜單懸浮

頭文件 #pragma once #include "SivExtendCtrlLib.h" // CTreeCtrlEx typedef void (*DRAWCALLBACK)(CDC* pDC,void* pTree); clas