Condividi tramite


Avviso C28159

Prendere in considerazione l'uso *function_name_1* di anziché .*function_name_2* Motivo: motivo

Questo avviso si verifica quando si usa una funzione che equivale semanticamente a una chiamata di funzione preferita alternativa.

Osservazioni:

C28159 è un messaggio di avviso generale; l'annotazione è stata usata (possibilmente con un'annotazione __drv_preferredFunction condizionale __drv_when) per segnalare una procedura di codifica non valida.

Nome dell'analisi del codice: U edizione Standard_OTHER_FUNCTION

Esempio

Nell'esempio di codice seguente viene generato questo avviso. Questo problema è dovuto all'uso di OemToChar, che non convalida le dimensioni del buffer:

char buff[MAX_PATH];
OemToChar(buff, input);  // If strlen(input) > MAX_PATH, this call leads to buffer overrun

Nell'esempio di codice seguente viene evitato questo avviso usando l'alternativa consigliata OemToCharBuff, che accetta le dimensioni del buffer di destinazione e limita la copia in modo appropriato:

char buff[MAX_PATH];
OemToCharBuff(buff, input, MAX_PATH);