Freigeben über


Warnung C28159

Verwenden Sie *function_name_1* anstelle von *function_name_2*. Grund: Grund

Diese Warnung tritt auf, wenn Sie eine Funktion verwenden, die semantisch einem alternativen, bevorzugten Funktionsaufruf entspricht.

Hinweise

C28159 ist eine allgemeine Warnmeldung; Die Anmerkung __drv_preferredFunction wurde verwendet (möglicherweise mit einer bedingten __drv_when() Anmerkung, um eine schlechte Codierungspraxis zu kennzeichnen.

Codeanalysename: USE_OTHER_FUNCTION

Beispiel

Im folgenden Codebeispiel wird diese Warnung generiert. Dieses Problem liegt auf der Verwendung von OemToChar, die die Puffergröße nicht überprüft:

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

Im folgenden Codebeispiel wird diese Warnung vermieden, indem die empfohlene Alternative OemToCharBuffverwendet wird, die die Größe des Zielpuffers einnimmt und die Kopie entsprechend begrenzt:

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