定义这些常量的正确方法是在您的项目中,而不是在您的源文件中。这样,它们将作为命令行键进入编译。
这些是唯一WINVER
定义的地方:
- c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\odbcinst.h,第 28(1) 行。
- c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\sdkddkver.h,第 166(2)、168(1) 行。
- c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\WinDef.h,第 39(1) 行。
- c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\WinGDI.h,第 43(1) 行。
- c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\WinReg.h,第 29(1) 行。
- c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\WinResrc.h,第 21(1) 行。
- c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\WinUser.h,第 39(1) 行。
这些是唯一_WIN32_WINNT
定义的地方:
- c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\ObjBase.h,第 18(1)、22(1)、26(1)、30(1) 行。
- c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\ObjIdl.h,第 604(1)、607(1)、610(1)、613(1) 行。
- c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\sdkddkver.h,第 151(1) 行。
- c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\WinResrc.h,第 33(1) 行。
如您所见,定义位于#ifdef
. (我没有检查所有地方)。
如果您有正确的项目、正确的 SDK 版本等,则不应覆盖您项目中的定义。
如果您的项目中的定义没有正确传播,这意味着有些事情搞砸了。很难说到底是什么。
无论如何,正确的方法是在您的项目或 makefile 中定义这些参数。