C6518C6518

avertissement C6518 : annotation non valide : propriété de 'SAL_writableTo' ne peut pas être spécifiée en tant que condition préalable dans des mémoires tampons non accessibles en écriture : '_Param_(1) »warning C6518: Invalid annotation: 'SAL_writableTo' property may not be specified as a precondition on buffers that are not writable: '_Param_(1)'

Cet avertissement indique qu’il existe un conflit entre un SAL_writableTo valeur de propriété et une propriété accessible en écriture.This warning indicates that a conflict exists between a SAL_writableTo property value and a writable property. En règle générale, cela indique qu’une propriété accessible en écriture n’a pas accès en écriture pour le paramètre annoté.This ordinarily indicates that a writable property does not have write access to the parameter being annotated.

ExempleExample

Le code suivant génère cet avertissement car le _Out_ annotation compile pour inclure un SAL_writableTo propriété, ce qui n’autorise pas l’accès en écriture :The following code generates this warning because the _Out_ annotation compiles to include a SAL_writableTo property, which does not allow write access:

#include <sal.h>
void f(_Out_ const char* pc)
{
    //code that can't write to *pc ...
}

Pour corriger cet avertissement, utilisez le code suivant :To correct this warning, use the following code:

#include <sal.h>
void f(_Out_  char* pc)
{
    pc = "Hello World";
    //code ...
}