C6517
Aviso C6517: conflito de anotação: ValidElementsConst e ValidBytesConst não podem ser especificados de buffers que não são legíveis
Este aviso indica que não propriedades ValidElementsConst e ValidBytesConst não terão o acesso de leitura necessário.Você não pode usar essas propriedades para anotar um parâmetro sem fornecer acesso de leitura.
Exemplo
O código a seguir gera este aviso porque não foi concedido acesso de leitura no buffer:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(ValidBytesConst=10 )][SA_Pre( Deref=1, Access=SA_Write )] char* buffer );
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre( ValidBytesConst=10 )][Pre( Deref=1, Access=Write )] char* buffer );
Para corrigir esse aviso, conceda acesso de leitura, sistema autônomo mostra o código a seguir:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(ValidBytesConst=10 )][SA_Pre( Deref=1, Access=SA_ReadWrite )] char* buffer );
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre( ValidBytesConst=10 )][Pre( Deref=1, Access=ReadWrite )] char* buffer );