2013年10月25日 星期五

以 disasm 為例讓我們真槍實彈挑戰軟體的移植與編譯

今天本文的標題很簡單,讓我們來練習自己移植與編譯軟體的原始碼,講專業的一點就是
學習軟體環境的建構技術,也就是說本文的目標就是要示範給各位讀者知道如何在一支自己
完全陌生的軟體源碼中,自己能夠排除錯誤,對於不存在的函式,能夠移植或撰寫相容函式
將原始碼中缺的部分給補齊,最後下達編譯與連結指令製造出該軟體的執行檔。

2013年10月17日 星期四

一種特別的參數傳遞技巧:直接嵌入立即資料於程式區段

相信有認真看過敝人曾經發過的幾篇呼叫慣例系列文章,應該已經很了解傳遞參數給函式背後
的基本原理,C 語言主要常用的不外乎就是 stdcall、cdecl 與 fastcall,在 x86-64 的環境裡面
也曾經提到過全部統一用 fastcall,可是參數在傳遞的過程中,讀者有沒有想過,是否能夠將
資料直接嵌入在程式區段中,而不需要宣告資料區段呢?這就是今天的主題,敝人將示範一種
特別的技巧,讓資料直接混合在程式區段內傳遞給一條簡單的 Windows API 作為示範。

2013年10月14日 星期一

講講 CFile、fstream 與 傳統 C 程式庫對於檔案讀取速度上的比較

在不發文的話,就要被樓主 K 頭了,所以今天就來講一個很實用的主題,就是在 C/C++ 中
developer(稱 developer,聽起來比較高級一點,programmer 讓人有一種做苦工的感覺)
常常需要打開硬碟內的檔案讀取資料吧,也許是一些設備存檔出來的報表資料,也許是一些
實驗數據,或者是一些軟體播放影音檔,不管用了多麼深奧的解碼技術,這些軟體的原始碼
一定都會有對檔案進行讀寫的動作,但是存取檔案的技巧其實有很多種類,這也是常常讓人
迷惑的地方,所以吾人就來講講一種我們常常會用到的檔案操作物件,來解解大家的迷惑
並且比較一下這些物件讀取檔案的速度。