原创 sdk改變ListCtrl某一行的字體顏色或者背景顏色

ListCtrl的字體顏色如果直接通過SetTextColour設置的話會改變所有行的字體顏色,sdk的對話框工程想要改變ListCtrl的某一行顏色需要注意一下幾點: 1.在ListCtrl的父窗口響應WM_NOTIFY消息。 2.處理

原创 LIBCMT.lib與msvcrtd.lib衝突的鏈接錯誤

LIBCMT.lib與msvcrtd.lib衝突的鏈接錯誤可以嘗試一下配置 1、打開項目屬性,在“配置屬性-->鏈接器-->命令行”的“附加選項”把

原创 c# BadImageFormatException異常

當 DLL 或可執行程序的文件映像無效時,便會引發 BadImageFormatException 異常。如果您的應用程序使用了 32 位組件,請確保該應用程序始終採用 32 位應用程序的運行方式。 如果應用程序項目的“平臺目標”屬性設置

原创 windbg調試死鎖問題

操作系統對死鎖的描述如下: 所謂死鎖:是指兩個或兩個以上的進程在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。    那麼爲什麼會產生死鎖呢? 1.因爲系統資源不足。 2.進程運行推進的順

原创 關於DialogBox的使用

在dll中調用DialogBoxA要注意,DialogBoxA的第一個參數是放有對話框資源的模塊的句柄,不要習慣性地填NULL,否則程序會到加載該dll的可執行文件資源中找導致資源找不到。

原创 程序異常時通過dump文件記錄下異常的詳細信息

在開發過程中經常遇到這種情況,程序在客戶那裏運行的時候會偶然的出現異常,而在開發環境裏卻很難重現問題導致排查問題非常困難,通過下面的方法可以通過dump文件將出現異常時的進程dump記下來,事後通過windbg等調試工具分析問題的詳細過程

原创 一個小函數,實現通配符*和?的字符串匹配。

實現通配符*和?的小程序: BOOL WINAPI FuzzyMatch(IN const char *src, IN const char *dst) { int itm = 0; int itn = 0; int tmp_a =

原创 堆損壞異常調試

今天調試一個bug,用pageheap解決,在此記錄一下。 bug症狀如下: 1:不確定性崩潰,用vs調試啓動每次崩潰地點都在crt分配或者釋放堆的位置 2:崩潰時vs看到的調用棧可能不同 3:output輸出HEAP: Free H

原创 關於lstrcpyn與strncpy的一點區別

這兩個函數作用相近,很容易用錯。 LPTSTR lstrcpyn(           LPTSTR lpString1,     LPCTSTR lpString2,     int iMaxLength ); Specifies t

原创 dll中的窗體設置xp風格

作如下設置即可,即使調用dll的exe不是xp風格,這個dll彈出的窗體也是xp風格的窗體。 #pragma  comment(lib, "Comctl32.lib") #pragma comment(linker,"/manifest

原创 關於全局事件的使用

windows創建一個事件的時候如果這個事件命名那麼這個事件就可以在多個進程間使用,比如A進程中創建一個事件B進程通過事件名稱打開事件。事件命名的時候一定要注意,如果這個事件要跨會話使用的話名稱前面要加Global\\標識,來標記這個事件

原创 C#開發啓用Visual Studio宿主進程

項目-屬性-調試 選中啓用Visual Studio宿主進程選項後,調試的時候會啓動.vhost.exe文件...,取消這一項纔會啓動真正的可執行文

原创 完全隱藏對話框

在WM_INITDIALOG消息裏通過SetWindowPos函數隱藏窗口,然後處理WM_WINDOWPOSCHANGING消息即可完全隱藏一個窗口(即看不到窗口的出現並且在任務管理器的應用程序頁面看不到窗口的存在),具體代碼如下: ca

原创 一個清理VS工程的小工具

VS工程編譯完之後會產生大量的臨時文件,這個小程序就是清理VS工程殘留文件的,能迅速清理VS的工程,如果有子文件夾遞歸進行清理,程序使用多線程效率很高。 /* * filename: main.cpp * author:

原创 wireshark過濾規則總結

1. 過濾IP,如來源IP或者目標IP等於某個IP 例子: ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107 或者 ip.addr eq 192.168.1.107 // 都能顯示來源