C6517
avviso C6517: annotazione non valida: la proprietà ValidElementsConst e ValidBytesConst non può essere specificata su buffer non leggibili
L'avviso indica che le proprietà ValidElementsConst e ValidBytesConst non dispongono dell'accesso in lettura necessario. Non è possibile utilizzare queste proprietà per annotare un parametro senza fornire accesso in lettura.
Esempio
Il codice seguente genera l'avviso perché sul buffer non è concesso l'accesso in lettura:
// 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 );
Per risolvere il problema, concedere l'accesso in lettura come riportato nel codice seguente:
// 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 );