启用 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

严格合规性