当前位置:  开发笔记 > 编程语言 > 正文

奇怪的SAL注释警告

如何解决《奇怪的SAL注释警告》经验,为你挑选了1个好方法。

我正在尝试将Micosoft的SAL注释用于我的项目,但是我得到了以下警告,我不知道为什么.

作为一个例子,我创建了一个新的C++控制台应用程序,并拥有以下代码:

#include 

class Whatever
{
public:
    _Check_return_ int Method(__in int number) ;
};

int main()
{
    return 0;
}

当我使用Visual Studio 2008编译时,我收到以下警告:

警告C6540:在此函数上使用属性注释将使其所有现有的__declspec注释无效

在文件"c1xxast"中

我究竟做错了什么?如果我删除了_Check_return_或者__in,则警告消失.

我找不到任何关于警告C6550的参考.但是可以在这里找到相同的文本:http://msdn.microsoft.com/en-us/library/dd445322.aspx,但它不是很有帮助.



1> thehouse..:

问题可能是因为您正在混合SAL注释类型.虽然在MSDN上非常清楚,但有两种类型的SAL注释:属性和......呃......不是.

VC2005中的#defines 使用非属性版本,并以下划线开头,后跟小写字母.较新的VC2008版本扩展为编译器属性,并以下划线后跟大写字母开始(和结束).

你混合了两种类型:

属性:

_在_

_Check_return_

非属性:

__在

__checkReturn

尝试更改注释以始终使用单一类型.

这篇博文详细解释了这一点.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有