Bug代碼如下:
var
AParam: TUserRecord;
begin
AParam.Value = 123;
因爲AParam是個結構,在Windows平臺上沒有問題,但到了其它平臺直接藍屏然後掛了...
原因很簡單,僅僅是因爲AParam中的其它參數沒有初始化,導致後面的代碼在執行過程中出現了問題。
這種問題雖然都很弱智,但是找起來卻非常非常麻煩...
解決方法也很簡單:
var
AParam: TUserRecord;
begin
//任何結構在使用前必須手工初始化
FillChar(AParam, SizeOf(TUserRecord), 0);
AParam.Value = 123;
結論:
無論在哪個平臺,只要是NativeCode,都要養成初始化結構變量或者內存的好習慣,否則,一些莫名奇妙的問題會把人搞的慘不忍睹。
BTW:有空可以去moonserver.cn看看博主寫的Web服務器...