Time of Update: 2018-12-07
2011.12.11整理燭秋 一、網路上流傳的方法網路上流傳的方法很多,也很複雜。之前在實現這個功能的時候在網路上尋找了很多,如下: http://blog.csdn.net/rainharder/article/details/6101317http://topic.csdn.net/t/20021009/15/1081843.html#r_7006146http://topic.csdn.net/u/20100414/12/A5265E43-6288-43A0-B337-C5DA0CF1D7
Time of Update: 2018-12-07
一、MD(d)、MT(d)編譯選項的區別1、編譯選項的位置以VS2005為例,這樣子開啟:1) 開啟項目的Property Pages對話方塊2) 點擊左側C/C++節3) 點擊Code Generation節4) 右側第六行Runtime Library項目2、各個設定選項代表的含義編譯選項包含靜態連結的lib說明/MD_MT、_DLLMSVCRT.lib多線程、Release、DLL版本的執行階段程式庫/MDd_DEBUG、_
Time of Update: 2018-12-07
2012-6-27整理cswuyg前幾天遇到過一種奇葩的代碼,用0xFEEEFEEE來判斷是否是懸垂指標,這種必須反對,太冒險了。另外填儲值到底是什麼呢?發覺要全面徹底分析,不是那麼簡單,最後只是把網路上的一些資料拿到這裡,作為記錄。一、Release下,用OllyDbg查看1、申請了50個位元組的空間。可以看到被初始化為0xBAADF00D。2、把申請的記憶體釋放之後,釋放之後記憶體初始化為0xFEEEFEEE。二、debug下用VS2005查看1、申請了50個位元組的空間。可以看到被初始化為
Time of Update: 2018-12-07
2012-7-8cswuyg 半年多以前就遇到這個問題,當時由於時間關係沒有做詳細分析,又用其他方式打補丁解決問題,最近又遇到,總算不懶惰,寫個demo看看到底怎麼回事。一、 視窗的Parent、Owner關係 視窗有兩種可能的上下級關係,一種是Owner,一種是parent。 建立視窗時,有WS_POPUP屬性的視窗,它的父視窗其實是Owner視窗。建立之後,可以通過SetParent,為它設定父視窗,這樣子他就有父視窗(子視窗位置限制在父視窗中)又有POPUP屬性。
Time of Update: 2018-12-07
2012-8-22cswuyg1. 衍生類別對象析構時,基類解構函式執行的前期會修改對象的虛函數表指標值 一般情況下(特指基類不使用novtable屬性),debug編譯出來的exe,衍生類別對象的析構,在析構基類部分的時候,對象的虛函數表指標值項會被修改成基類的虛函數表地址,然後再執行基類的解構函式體。其中高亮的那一行是修改對象的虛函數表指標值為基類虛函數表地址
Time of Update: 2018-12-07
最近要搞chromium,雖然之前下載、編譯過一次兩次,但是都沒有時間認真看代碼(拖延症患者)。後來機器上又裝了其它東西,也不知道是不是因為裝了vs2005的原因,現在把以前拉的代碼拿過來就編譯不過,需要每個工程都去修改platform toolset,把它從v100修改為windows7.1,面對chromium650個工程,逐個修改太累,所以重裝系統再來一遍,好在SSD硬碟夠快。 一、安裝環境流程如下:1、安裝win7 64位
Time of Update: 2018-12-07
一、webui的demo
Time of Update: 2018-12-07
webui的資源被編譯在chrome.dll下,當在地址欄裡輸入一個內部url時,它所對應的資源會從chrome.dll找到。每當修改前端代碼之後都要再編譯一次chrome.dll,這很浪費時間,而且前端一般由非C++程式員負責,要讓他們去編譯,實在不合理,所以必須有辦法可以重新導向url到本地檔案。通過諮詢、查看代碼,找到瞭解決方法。
Time of Update: 2018-12-07
CURL支援HTTP代理,SOCKET4代理,SOCKET5代理,但是在windows平台最經常的還是IE代理。也就是設定在IE瀏覽器中的代理。 由於curl沒有直接的支援選項,因此如果要在curl之中實現IE代理,那麼需要一些小工作需要做。 思路如下,通過windows提供的API擷取IE瀏覽器中的代理類型、代理IP地址,代理連接埠資訊,通過url提供的函數設定代理就好。 一、先來認識三個函數 1、WinHttpGetIEProxyConfigForCurrentUser
Time of Update: 2018-12-07
openssl是一個功能強大的工具包,它整合了眾多密碼演算法及工具 +
Time of Update: 2018-12-07
動態連結程式庫中分配記憶體引起的 本文主要是探討關於在動態連結程式庫分配的記憶體在主程式中釋放所產生的問題,該問題是我在剛做的PJP工程中所遇到的,由於剛碰到之時感動比較詭異(這也是學識不夠所致),所以將它寫下來,大家一起分享. 問題來由:由於該工程中要用到聲音,所以我的分工之一就是用DirectMusic和DirectSound來開發聲音播放的動態庫,以提供給該工程的兩個部分:模擬控制部分( 語音 )和三維部分( 情境聲音
Time of Update: 2018-12-07
一般都說測試先做單元測試,然後做整合測試,然後做系統測試之類的,其實說白了,也可以理解成將最基本的測試步驟,或者說測試環境使用一定的方法組合以後再產生新的測試案例。因為人工組合,第一比較費神,第二是有時要麼是設計了幾個等價的測試案例,重複執行這些等價的測試案例,比較費時。這裡有一個比較好的測試技術,叫做配對(pair-wise)測試,它可以根據你設定的條件,自動產生在測試時間(即工作量)和測試覆蓋率之間做出平衡的組合。 配對測試的基本理念是,雖然程式的某個組件,或者程式自己會接受很多的輸入,但大
Time of Update: 2018-12-07
在調試一些病毒程式的時候,可能會碰到一些反調試技術,也就是說,被調試的程式可以檢測到自己是否被調試器附加了,如果探知自己正在被調試,肯定是有人試圖反組譯碼啦之類的方法破解自己。為了瞭解如何破解反調試技術,首先我們來看看反調試技術。一、Windows API方法Win32提供了兩個API, IsDebuggerPresent和CheckRemoteDebuggerPresent可以用來檢測當前進程是否正在被調試,以IsDebuggerPresent函數為例,例子如下: BOOL ret =
Time of Update: 2018-12-07
最近物價飛漲,得給錢找個保值的地方,朋友給我推薦了一個不錯的樓盤投資保值,實在不行自住也很舒服。這麼一大筆的投資,為了驗證一下保值的潛力,當然需要慎之又慎,小心的不能再小心。作決定前自然要估計一下收益如何,這種紛繁複雜的計算,雖然每一步都是很簡單的運算,但是很多步串起來,就有點顧此失彼了。因此就想到用Excel自己做一個分析工具,省去自己編程的麻煩,可能你也有類似的需求,就把製作方法介紹如下。 設計的目標:1. 使用者需要輸入房子的單價、面積以及購買時間。2.
Time of Update: 2018-12-07
前幾天,有一個朋友問我為什麼在.NET裡不能捕捉(catch)到一些異常了,而且在調試器裡也捕捉不到。研究了一下,是.NET 4.0裡新的異常處理機制搗的鬼。 在.NET 4.0之後,CLR將會區別出一些異常(都是SEH異常),將這些異常標識為破壞性異常(Corrupted State Exception)。針對這些異常,CLR的catch塊不會捕捉這些異常,即使你用類似下面的代碼: try { TestMethod();
Time of Update: 2018-12-07
PowerDbg是一個PowerShell指令碼,使用這個指令碼可以串連到windbg上面,遠端控制windbg,可以通過編程的方式分析windbg輸出;加之PowerDbg強大的編程能力,方便我們編寫一些強大的調試指令碼。使用方法比較簡單,從http://www.codeplex.com/
Time of Update: 2018-12-07
這幾天有一個小工具需要做測試,是一個命令列工具,這個命令列工具有點類似mdbg等命令列工具,即程式運行後,在命令列等待使用者敲入的命令,處理命令並顯示結果,再繼續等待使用者敲入新的命令。原來的測試案例都是手工執行的,即在測試文檔裡寫明輸入什麼命令,期望得到什麼結果之類的。這種手工的工作當然要自動化執行才行。但是自動化測試這個工具有一個問題,因為這個工具不象其他的命令列程式—接受一些命令列參數,處理一下並顯示結果,然後退出。而是在命令列不斷地接受新的指令,處理並回顯,再接受使用者新的命令。因此不能
Time of Update: 2018-12-07
在前面幾篇文章網站測試自動化系統—基於Selenium和VSTT、資料驅動測試、在測試代碼中寫入程式碼測試資料裡,大概介紹了編寫測試代碼的過程。然而光把代碼寫完了是不夠的,自動化測試不僅僅是將原本手工執行的測試案例通過編碼的方式自動化。一個完整的自動化測試過程應該包括如下幾個過程:1. 在實驗室裡面自動選擇機器來執行測試過程,比如說為了測試一個軟體產品,以Office舉例。因為微軟已經為Windows發布了很多的版本,Windows XP, Windows Vista,
Time of Update: 2018-12-07
在前面幾篇文章網站測試自動化系統—基於Selenium和VSTT、資料驅動測試、在測試代碼中寫入程式碼測試資料裡,已經編寫了一部分測試案例的代碼了。我在文章自動化系統該有的功能裡,也提到了,自動化測試案例代碼應該能夠被系統自動執行起來。我們總不能要求測試人員每天下班之前把最新的測試代碼下載到自己本機,用VSTS開啟,然後選擇要批次執行的測試案例。這種重複機械的勞動是應該要被程式消滅的,畢竟機器的成本要比人工的成本低多了。首先先分解一下執行測試案例的步驟,編碼實現每一個步驟,然後使用批處理的形式將
Time of Update: 2018-12-07
WPF的資料繫結是一個很強大的功能,TwoWay的繫結模式,讓程式員不用編寫一行代碼,就可以實現程式介面(UI)與後台資料的同步。比如說後台資料的People.Name屬性變化了,程式介面中顯示People.Name的文字框控制項就自動更新,反過來,文字框裡面的資料被使用者編輯了以後,後台資料的People.Name也自動更新成編輯過後的資料。很好,很強大,但問題是,如果使用者在程式介面上更改文字框中的文本後,想取消編輯操作(Undo功能)怎麼辦?一般來說,編輯資料的程式介面至少有兩個按鈕,例如