原创 設置全局鍵盤鉤子和消息鉤子

前幾天因爲工作需要用到鉤子,而且是全局鉤子,用來監視別人的程序鍵盤消息。需要注意幾點1.如果只需要監視自己的應用程序,在自己程序裏設置鉤子就行。2.如果需要監視別人的應用程序,一定要做成DLL形式的全局鉤子。首先我是用VS新建一個DLL

原创 bmp文件格式詳細解析

先區分幾個概念:16色和16位色一樣嗎? 不一樣! 顏色位數,即是用多少位字節表示的值,每一位可以表示0和1兩值。通常圖片的顏色深度,簡稱色深,就是用位數來表示的,所以,我通常會看到8位色,16位色,24位色和32位色。 而我們在其它地

原创 MFC接收外部程序執行的shellexecute中傳遞的參數來執行不同操作

大家都知道,我們可以通過shellexecute函數來執行別人的程序,但如果別人的程序通過shellexecute來執行我們自己的程序,而且通過傳遞過來的參數來執行不現效果呢? 首先,來看看ShellExecute函數 使用該函數時,

原创 控制別人的程序的按鈕和編輯控件等

[DllImport("user32.dll")] static extern IntPtr FindWindow(string strClass, string strWindow); [DllImport("user32.dll")]

原创 CStringArray初始化小問題

當聲明一個CStringArray變量時,如果不調用SetSize函數設定大小,那麼該數組默認大小爲0,所以你只能調用ADD函數爲這個數組來增加原素,因爲ADD會在該數據末尾增加一個新的元素。 一般SetSize和SetAt結合使用。如果

原创 局部對象的析構順序與其創建順序的相反

當一個 QObject 對象在堆上創建的時候,Qt 會同時爲其創建一個對象樹。不過,對象樹中對象的順序是沒有定義的。這意味着,銷燬這些對象的順序也是未定義的。Qt 保證的是,任何對象樹中的 QObject 對象 delete 的時候,如果

原创 如何調試棧破壞之類的問題

經常碰到本來運行很正常的程序,忽然彈出錯誤對話框,“ "0X****"指令引用的"0X******"內存。該內存不能爲"read"或"written"”。接着程序就崩潰退出。這樣的錯誤是程序存在BUG引起堆棧被破壞導致的。不要小看這樣的問

原创 GNU gcc 和 g++ 的區別詳解

gcc 和 g++ 都是 GNU 組織的編譯器。誤區一: gcc 只能編譯 C 代碼,g++ 只能編譯 C++ 代碼兩者都可以,但是請注意:1. 後綴爲 .c 的,gcc 把它當作是 C 程序,而 g++ 當作是 C++ 程序;    後

原创 TCPIP設置爲非阻塞、發送延時、緩衝區大小等

在TCPIP網絡編程中,需要根據項目需要設置信息。1.設置爲非阻塞模式,即想在listen,send,rev函數立即返回,而不是阻塞在那裏,在bind之前調用 unsigned long on_windows=1; int iRet

原创 把敏捷融合到瀑布式環境中

寫得比較好的一篇項目管理方向文章,轉載一下。 每位項目經理都可以成功地將敏捷融合到瀑布式環境中,這樣可以提高項目的可預測性、提高成本效益,並促使項目最終獲得成功。   曾經項目管理人員認爲敏捷只是一種時尚。敏捷宣言發表10年來,這種

原创 error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'

今天在一個類A中添加CArray<POINT, POINT> m_PointArray;成員變量,竟然編譯失敗,提示如下信息 d:\program files (x86)\microsoft visual studio 11.0\vc\a

原创 MFC radio button互斥選擇的重要幾點

MFC中的radio控件的互斥功能很常用,一般在MFC資源中一個一個按順序增加radio控件時不會有問題。但如果修改以前的代碼,需要重新增加幾個radion時需要注意以下幾點。 1.新增加的radio的ID與舊的一定要連續。 2.除了

原创 CListCtrl自動排序及添加排序箭頭

應客戶要求,在點擊CListCtrl列表每列標題時進行排序,類似於WINDOWS資源管理器的效果。 首先在資源中添加LVN_COLUMNCLICK消息,生成OnLvnColumnclickListInfo函數,在函數裏進行處理即可。 1.

原创 從零開始學習FFT(快速傅里葉變換) 這也是我學習dft算法的心得,謝謝各位

 本文是從最基礎的知識開始講解,力求用最通俗易懂的文字將問題將的通俗易懂,大神勿噴,多多指教啊,雖然說是從零學習FFT,但是基本的數學知識還是要有的,sin,cos,等。       FFT(快速傅里葉變換)其本質就是DFT,只不過可以快

原创 MFC實現類似callstack功能

今天在國際發展部出現一個奇怪的問題,拖動鼠標竟然調節了探頭參數,而在自己的電腦始終沒有出現這個問題,所以無法通過調試的callstack來看究境哪裏調用。初步想了下,正常就沒有調用到調節參數的那個函數那裏,難道程序哪裏還有什麼隱藏的BUG