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);