我如何获得sal.h

Cla*_*lay 8 windows compiler-construction sdk header

我一直试图在win7上用minw32编译一个程序.每次我尝试编译时,都会收到有关sal.h缺失的错误.我已经下载了Visual Studio c ++ 2010(Express)并获得了Microsoft Win7 SDK.即使在这之后,我仍然没有找到头文件.有没有我可以下载的地方?

Sim*_*ier 9

它位于

"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include" (VS 2008)
Run Code Online (Sandbox Code Playgroud)

要么

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include" (VS 2010)
Run Code Online (Sandbox Code Playgroud)

要么

"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include" (VS 2012)
Run Code Online (Sandbox Code Playgroud)

当然,您可能希望适应本地设置路径.


nem*_*equ 5

正如前面的答案所说,SAL 是 Visual Studio 的东西。恕我直言,这是一项伟大的技术,可以帮助编译器理解代码,这样当你做错事时它可以发出警告。不幸的是,微软似乎拥有它的专利,因此其他编译器无法实现它\xe2\x98\xb9。即使你拿到了一份副本sal.h我真诚地怀疑它是否可以与 mingw 一起使用,因为它会将宏转换为 gcc/mingw 无法理解的属性。

\n\n

不久前我整理了一个名为Salieri的小项目,它基本上是 SAL 标头的可移植版本,仅定义了 SAL 宏。您不会获得 SAL 带注释的代码的任何好处,但它应该可以帮助您获得使用 SAL 在其他编译器上编译的代码。

\n\n

很抱歉在这里宣传我自己的项目,但我认为这对很多看到这篇文章的人来说可能很有用。

\n

  • [此处](https://github.com/Azure/azure-c-shared-utility/blob/master/testtools/sal/inc/no_sal2.h) Microsoft 本身命名的一个不太诗意的解决方案,扩展为包括 [SAL 2.0](https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/sal-2-annotations-for-windows-drivers)。他们抄袭了你☹。 (2认同)