分析错误的方法
11.01.29
1.
BOOL类型返回TRUE! 如果返回bool会引发很奇怪的错误.
花费至少半小时查各种奇怪错误.
2.
int WINAPI DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
return 2;
}
尽量所有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. 参数限制. 很多时候是某个参数没设置, 或设了限制。