Visual c + + 和 Windows 在生成过程的速度邮件头提供了新的下列定义:
VC_EXTRALEAN WIN32_LEAN_AND_MEAN
可以使用它们来减少了 Win32 头文件的大小。
VC_EXTRALEAN 和 WIN32_LEAN_AND_MEAN 用于排除 Windows 标头在很少使用的服务。在 MFC 中只能使用 VC_EXTRALEAN 项目,但 WIN32_LEAN_AND_MEAN 可用于在任何项目。
VC_EXTRALEAN 定义下列中 AFXV_W32.h:
WIN32_EXTRA_LEAN NOSERVICE NOMCX NOIME NOSOUND NOCOMM NOKANJI NORPC NOPROXYSTUB NOIMAGE NOTAPE
WIN32_EXTRA_LEAN 不执行任何操作。请有关 NOxxx 符号被定义的信息,参阅 Windows.h。
新生成 Visual c + + 5.0 和更高版本的应用程序向导应用程序会自动从 VC_EXTRALEAN 受益。您可以手动定义 VC_EXTRALEAN 许多较旧的 MFC 应用程序的生成过程的速度。
WIN32_LEAN_AND_MEAN: Windows 头可使用该符号来排除很少使用的头文件。请参阅 Windows.H 以确定在定义此符号时,将被排除的文件。因为 MFC 定义了WIN32_LEAN_AND_MEAN,所有 MFC 项目自动都使用它。
无 MFC c + + 和 C 的应用程序可以定义 WIN32_LEAN_AND_MEAN 和任何适用的 NOservice 如 NOSOUND 定义 (请参阅 DevStudio\Vc\include\Windows.h),以减少他们生成的时间。
若要添加这些定义,从项目菜单中,选择设置。显示在项目的设置对话框。单击 C/c + + 选项卡。在分类列表中选择预处理器。将所需的定义添加到预处理器定义框中。
更多讨论请:Where did WIN32_LEAN_AND_MEAN come from?
今天在写项目的时候发现编译不过去,主管告诉我去掉WIN32_LEAN_AND_MEAN 这个宏,然后就行了。特地转过来记录下来,不过晚上回来用VC 6.0和VS 08生成默认MFC工程,不管是基于对话框,还是单文档的都没发现WIN32_LEAN_AND_MEAN这个宏,有VC_EXTRALEAN;而在win32项目的时候没有VC_EXTRALEAN,有WIN32_LEAN_AND_MEAN。
【参考资料 感谢作者】
1、如何使用 VC_EXTRALEAN 和 WIN32_LEAN_AND_MEAN 增强 Visual c + + 中的生成过程