原创 CString的部分實現剖析

一、CString初探:    在CString的實現中,其最基礎的類結構如下:      CString其實只有一個數據成員m_pszData,這個成員指向了字符串的首地址。但在MFC的具體實現中,

原创 C++運算符重載需要注意的地方

有時候自己寫一個類,需要重載運算符,但對於一些操作符(如==、<、>等),可以在類裏寫,也可以在類外寫。那麼 C++ 編譯器會去怎麼調用呢? 首先,我們知道,“重載” 機制可以允許多個函數有相同的函數名,但參數列表必須不同。C++編譯器

原创 C++工具箱(二)——定時器

有時候我們需要用到定時器這樣一個東西,但是我們如果去一個窗口裏面 SetTimer,但我們又需要在一個非 UI 類(線程)裏要用計時器,那麼解耦就沒有辦法實現了。有沒有更好的辦法呢? 答案是肯定的,我看可以寫一個單件定時器類,用來管理定

原创 事件對象Event的使用

  最近使用到Event,做一下總結。 1、對象的創建: 創建了一個匿名的初始狀態爲“無信號”狀態的Event。 HANDLE _hEvent = ::CreateEvent(NULL, FALSE, FALSE, NULL); 2

原创 SQLite的使用

最近頻繁使用到 SQLite,越來越發現該數據庫的好用。SQLite 是一款開源、輕量、本地化存儲、功能強大的數據庫,由於它的這些特性,使得人們在項目中廣泛應用。 首先,你可能要去www.sqlite.org去下載一份 SQLite,可

原创 Windows下遍歷文件目錄

最近用到遍歷文件目錄,總結一下: #include <Windows.h> WIN32_FIND_DATA fndData; HANDLE hFnd = INVALID_HANDLE_VALUE; hFnd = ::FindFirs

原创 C++工具箱(三)——動畫類之基類

OK,我們已經討論了單件和定時器了,該來點真格的了。這次我們來看看如何通過前面所述的定時器實現動畫。我目前想到的動畫有大小更改、Alpha 透明度更改、窗口位置更改等幾種,後續會逐步加上。 我們先來思考動畫的實質。動畫其實就是通過定時器

原创 C++工具箱(四)——動畫類之透明度漸變 & 大小漸變

                                                                                                                     

原创 獲取進程啓動時間

我們有時候通過測試一個程序的啓動時間來評估程序的性能,那麼該怎麼辦呢?現在提出兩種辦法,各有優劣,請酌情采納。 1、通過一個輔助程序調用CreateProcess 啓動被測程序,在 CreateProcess命令行參數中傳遞當前Tick

原创 C++的兩個細節

細節總是煩人的,但又有人說了:“細節決定成敗”。所以,只有將這些細節總結出來了。 細節問題總是這樣:你明明知道是這樣做,但又有點不太確定,需要回去翻一遍才能繼續。今天遇到兩個: 1、C++ 浮點數取整: #include <cmath

原创 由C++絕對值函數想到的

       這些天恰好要用到一個絕對值的函數。好吧,你會說這個直接用std::abs不就行了嗎?對的,一開始我也是這樣用的。但是如果去求最小的那個int的值的絕對值,就會導致輸出不正確。如: int min_int = -214748

原创 離線安裝 Android Studio 更新

離線安裝 Android Studio 更新 1、在線更新         隨着 Android Studio 的越來越完善與流行,無論從功能性,還是性能上,它正在成爲廣大 Android 開發者的首選。但是因爲總所周知牆的原因

原创 反彙編系列(二)——堆棧篇

    要反彙編程序,不可避免要接觸到堆棧,你首先得會查看堆棧,知道堆棧在某一時刻的確切內容。首先,我們講述一些與堆棧相關的基礎知識。 1、堆棧基礎     彙編語言中的“堆棧”的含義與數據結構中堆棧的含義不同,儘管從操作上來說,它們都

原创 反彙編系列(三)——函數篇

彙編中的函數調用我們需要着重講述一下。一般我們用 call 發起調用,最後需要用 ret/retn/retf 來返回。我們逐個來看彙編中的函數調用。 1、相關指令 call  ADDRESS:發起調用,根據 ADDRESS 的地址決定是

原创 Lua與C/C++交互——C/C++調用Lua腳本

                                                                                   Lua與C/C++交互——C/C++調用Lua腳本