boundschecher2

3.3 检测Win32 API函数的兼容性

BoundsChecker还提供了一个功能——检测程序中使用的Win32 API函数在不同平台上的兼容性。该功能与前面提到的ActiveChecker、FinalCheck模式没有什么关系,它是独立的一个功能。

虽然大多数Win32 API函数都适用于Win95、Win98、Win2000、WinNT等不同的Windows操作系统平台,但并不是所有的API函数都满足这种情况。你可能不知不觉的使用了在某一个平台下允许,在另一个平台下却不允许使用的API函数,而项目的要求是:程序能够在这两种平台下运行。 BoundsChecker提供的这个检测Win32 API函数兼容性的功能,恰好能够处理这个问题。

该功能的使用方法如下:

启动[BoundsChecker/View/Compliance Report]菜单命令,如下图所示:


图3-5 启动Win32 API函数兼容性检测功能

会弹出下面的窗口:


图3-6Win32 API函数兼容性检测功能

在对话框中选择程序承诺能够运行的平台,以及被要求遵从的其他标准(标准C和扩展的标准C),点击“OK”按钮,BoundChecker会给出兼容性检测报告。

3.4 忽略错误

在某些情况下,我们需要忽略BoundsChecker报告的一些错误,这些情况包括:

1 误报。BoundsChecker 指定程序中的某段代码存在错误,但经过我们的仔细检查,证实程序确实没有这个错误,这是BoundsChecker的误报。工具毕竟是工具,它只能依照为它制定的算法行事,所以会有误报的情形发生。但千万不要轻易认定某一个错误为误报,一定要对错误进行仔细的分析,确定是真正的误报。

2第三方的代码。BoundsChecker指定的错误发生位置在第三方提供的代码中,包括第三方提供的程序库、DLL、OCX等。对于这种情况,我们也要先进行认真的检查,确定不是由于我们错误的使用第三方的代码引起的。如果最后确定不是我们的原因,则这样的错误报告可以忽略。

3.5 其他

还有一点需要强调,使用BoundsChecker对程序进行测试时,需要有程序的源代码。如果没有源码,BoundsChecker虽然也可以打开EXE文件将其执行起来,但得出的测试结果经常是不正确的,因此也就没有太大的意义。

另外,除了可以在VC++集成开发环境中使用BoundChecker外,从 [开始菜单] 中启动BoundChecker,然后打开经BoundChecker编译连接生成的可执行文件,也可以对程序进行测试,操作方法与集成到VC++集成开发环境中BoundChecker的操作方法是一样的,在此就不赘述了。

至此,BoundChecker所提供的功能全部介绍完了。

你可能感兴趣的:(windows,api,测试,report,工具,平台)