C6518

警告 C6518:批注冲突: 不能在不可写的缓冲区上指定 WriteableElementsConst 和 WriteableBytesConst

此警告意味着在 Access 属性值与可写属性之间存在冲突。 这通常意味着可写属性对所批注的参数没有写权限。

示例

在下面的代码中,因为 Access 属性不授予写权限,所以会生成此警告:

// C
#include <CodeAnalysis\SourceAnnotations.h>

void f([SA_Pre(Deref=1, Access=SA_Read)][SA_Pre(WritableElementsConst =9)] char* pc);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;

void f([Pre(Deref=1, Access=Read)][Pre(WritableElementsConst=9)] char* pc);

若要更正此警告,请允许对该参数进行写入访问,如下面的代码所示:

// C
#include <CodeAnalysis\SourceAnnotations.h>

void f([SA_Pre(Deref=1, Access=SA_Write)][SA_Pre(WritableElementsConst =9)] char* pc);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;

void f([Pre(Deref=1, Access=Write)][Pre(WritableElementsConst=9)] char* pc);

请参见

其他资源

批注属性