我从哪里获得适用于 VS21015 的正确 gdi+ c++ 包装器?

Where do I get the correct gdi+ c++ wrappers from for VS21015?

我有 windows kits.1\include\um\gdiplusheaders.h 等 - 但我们正在从 VS2013 升级到 VS2015,我遇到了无穷无尽的编译器错误,例如如:

1>c:\program files (x86)\windows kits.1\include\um\gdiplusheaders.h(695): error C2220: warning treated as error - no 'object' file generated
1>c:\program files (x86)\windows kits.1\include\um\gdiplusheaders.h(695): warning C4458: declaration of 'nativeCap' hides class member
1>  c:\program files (x86)\windows kits.1\include\um\gdiplusheaders.h(695): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings
1>  c:\program files (x86)\windows kits.1\include\um\gdiplusheaders.h(710): note: see declaration of 'Gdiplus::CustomLineCap::nativeCap'
1>c:\program files (x86)\windows kits.1\include\um\gdiplusimageattributes.h(364): warning C4458: declaration of 'nativeImageAttr' hides class member
1>  c:\program files (x86)\windows kits.1\include\um\gdiplusimageattributes.h(364): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings
1>  c:\program files (x86)\windows kits.1\include\um\gdiplusimageattributes.h(378): note: see declaration of 'Gdiplus::ImageAttributes::nativeImageAttr'
1>c:\program files (x86)\windows kits.1\include\um\gdiplusmatrix.h(296): warning C4458: declaration of 'nativeMatrix' hides class member
1>  c:\program files (x86)\windows kits.1\include\um\gdiplusmatrix.h(296): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings
1>  c:\program files (x86)\windows kits.1\include\um\gdiplusmatrix.h(310): note: see declaration of 'Gdiplus::Matrix::nativeMatrix'

现在,我似乎可以按照指示使用 /Wv 标志 - 但我的猜测是我需要 Windows SDK 的更新版本,其中包含当前版本的 GDI+ C++ 包装器。

但是,我没有找到这样的结果,即 Google。

更新: 我发现这种混乱的情况越来越多。 我通过确保在#include'ing gdiplus.h 之前#prama warning(disable:4458) 清除了 Gdiplus.h 的警告,但我得到:

1>c:\users\steve\vault\cimex cad-cam.0\mfc toolbox\cstring utilities.h(441): warning C4459: declaration of 'chQuote' hides global declaration
1>  c:\users\steve\vault\cimex cad-cam.0\mfc toolbox\cstring utilities.h(441): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings

在我自己的代码中,VS2015 认为自由函数参数与 c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\statreg.h 冲突 - 它定义了一个命名空间 ATL 中的全局!

真是一团糟!这真的是标准机构想要的吗?!这太疯狂了!现在,每个地方的每个变量或参数都必须避免与 windows 或 MFC/ATL 的其他部分完全不相关的垃圾名称冲突,因为也许某个地方可能隐藏了全局...老兄!这是愚蠢的。 :(

看来交付的 SDK 在 /W4 确实充满了警告。 在调用各种 SDK headers.

之前,必须返回 /W3 或覆盖各种警告

仅供参考 - VS2013 能够使用 /W4 编译那些相同的 SDK。所以大概有更多的警告,或者他们发现了更多的违规行为。