早就觉得WinCE里面Eboot的源代码质量不高,而且还有Bug,今天又发现一个:
dwNumBlocks = (dwImageLength / 0x4000) + 1;
这是烧写Stepldr和Eboot时候计算Block数的代码,Stepldr在第一块,即0,所以加1,但是Eboot的大小为256K,即0x40000,除以0x4000,正好不用加1,结果这个地方还加了个1,属于低级失误。真不知道微软怎么搞得
本文分析了WinCE中Eboot源代码的质量问题及存在的Bug,特别是在计算烧写Block数量时的一个低级失误。
早就觉得WinCE里面Eboot的源代码质量不高,而且还有Bug,今天又发现一个:
dwNumBlocks = (dwImageLength / 0x4000) + 1;
这是烧写Stepldr和Eboot时候计算Block数的代码,Stepldr在第一块,即0,所以加1,但是Eboot的大小为256K,即0x40000,除以0x4000,正好不用加1,结果这个地方还加了个1,属于低级失误。真不知道微软怎么搞得

被折叠的 条评论
为什么被折叠?