启用 STRICT

定义 STRICT 符号时,启用声明和使用类型时需要更多关注的功能。 这有助于编写更可移植的代码。 这种额外护理也会减少调试时间。 启用 STRICT 会重新定义某些数据类型,以便编译器不允许在没有显式强制转换的情况下将一种类型分配给另一种类型。 这对于Windows代码特别有用。 传递数据类型中的错误在编译时报告,而不是在运行时造成致命错误。

使用 Visual C++ 时,默认情况下会定义 STRICT 类型检查。

若要逐文件定义 STRICT,请在包括 Windows.h 之前插入#define语句:

#define STRICT
#include <windows.h>

定义 STRICT 后, 数据类型 定义将按如下所示更改:

  • 将特定句柄类型定义为互斥;例如,无法传递需要 HDC 类型参数的 HWND。 如果没有 STRICT,所有句柄都定义为 HANDLE,因此编译器不会阻止你使用需要另一种类型的句柄。
  • (的所有回调函数类型(例如对话框过程、窗口过程和挂钩过程) )都使用完整原型定义。 这可以防止你声明具有错误参数列表的回调函数。
  • 应使用泛型指针的参数和返回值类型正确声明为 LPVOID ,而不是 LPSTR 或其他指针类型。
  • COMSTAT 结构根据 ANSI 标准声明。

禁用 STRICT

严格符合性