分析错误的方法

11.01.29

1.

BOOL类型返回TRUE! 如果返回bool会引发很奇怪的错误.

花费至少半小时查各种奇怪错误.

2.

int WINAPI DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{

return 2;
}
如果返回0, 生成没错误, 运行时有错误.

尽量所有return 的都返回true.

11.01.24

----------------------------

GetDC, ReleaseDC

CreateDC, DeleteDC

BeginPaint, EndPaint

没匹配使用

CreateCompatibleDC(NULL)

GetDC

用混

-----------------------------

造成的悲剧,查了2小时, 各种方法查. 今天状态有些不好, 脑袋有点不清醒.

11.01.13

1.

wBitsSize= bmfh.bfSize - bmfh.bfOffBits;

级别:  较难查, wBitsSize计算有值, 很难发现是bmfh.bfSize - bmfh.bfOffBits = 大值越界.

原因: WORD wBitsSize: MAX_WORD = 2^16-1 = 65535 ~= 65k.

   在加载995K时候出现wBitsSize计算不正确, 后面的程序总报错.

命名:数值计算错误.

2.

级别: 不定.

原因: 在DIB图像获取信息时, 有时计算错位置, 导致图像无法显示, 如果概念不清晰, 根本不可能的到正确操作.

命名:概念要清晰, 结构拆分正确.

11.01.11

1.参数传入和设置是否一致: 以后先检查传入参数是否正确.   今天查个错误, 因为参数不是static导致全局调用时, 初始化内容丢失, 参数传入为空. 但由于函数是新接触,查了半天初始化时参数内容设置上是否有问题,而忘记了最基本的.

2.参数设置是否正确 :  前两天一个错误, BitMap初始化总失败, 原因是设置ByteSum!= WidthOfPixel * BitEveryPixel / 8 造成的. 

10.11.01

首先了解功能应该什么样子. 然后根据错误现象进行排查。

非逻辑方面因素:

1. 权限问题.  很多时候是账号没有使用权限. 导致查半天不知道什么原因。

2. 功能开启.  很多时候是功能根本没开启。

3. 参数限制.   很多时候是某个参数没设置, 或设了限制。

posted on 2011-01-29 22:11  oleeceo  阅读(358)  评论(0)    收藏  举报

导航