Freigeben über


Warnung C28719

Gesperrte API-Verwendung: Funktionsname ist unsicher und wurde als veraltet gekennzeichnet.

Diese Warnung zeigt an, dass eine Funktion verwendet wird, die verboten wurde und für die es einen robusteren oder sichereren Ersatz gibt.

Hinweise

Eine Liste aller gesperrten Funktionen, die von diesem Fehler abgedeckt werden, warum sie gesperrt sind, und empfohlene Ersetzungen finden Sie nach dem folgenden Beispiel.

Codeanalysename: BANNED_API_USAGE

Beispiel

Der folgende Code generiert diese Warnung:

void example_func(PSTR src) 
{ 
    char dst[100]; 
    strcpy(dst, src);
} 

Dieses Problem ergibt sich aus der Verwendung der unsicheren Funktion strcpy. strcpy überprüft nicht, ob der Zielpuffer groß genug ist, um die Quelldaten anzupassen. Um dieses Problem zu beheben, können wir strcpy_s, C++11s sichereren Ersatz für diese Funktion verwenden. strcpy_s verfügt über einen dritten Parameter (die Größe des Zielpuffers), um sicherzustellen, dass nur viele Bytes kopiert werden. Beispielsweise ist der folgende Code sicherer:

void example_func(PSTR src) 
{ 
    char dst[100]; 
    strcpy_s(dst, sizeof(dst), src); 
}

Verbotene Funktionen

HINWEIS: Diese Liste wird aktiv aktualisiert und verbessert.

Verbotene API Ersetzung(en) Begründung / Anmerkungen
_fstrcat StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Ältere 16-Bit-Weitzeigerimplementierung
_fstrcpy StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Ältere 16-Bit-Weitzeigerimplementierung
_fstrncat StringCbCatN, , StringCbCatNExStringCchCatNStringCchCatNEx Ältere 16-Bit-Weitzeigerimplementierung
_fstrncpy strncpy, wcsncpy Ältere 16-Bit-Weitzeigerimplementierung
_ftccat strcat, wcscat Ältere 16-Bit-Weitzeigerimplementierung
_ftccpy strcpy, wcscpy Ältere 16-Bit-Weitzeigerimplementierung
_ftcscat strcat, wcscat Ältere 16-Bit-Weitzeigerimplementierung
_ftcscpy strcpy, wcscpy Ältere 16-Bit-Weitzeigerimplementierung
_getts StringCbGets, , StringCbGetsExStringCchGets, , StringCchGetsExgets_s Keine Größenbeschränkung für Daten
_gettws gets_s Keine Größenbeschränkung für Daten
_getws _getws_s Keine Größenbeschränkung für Daten
_mbccat strcat_s, , StringCbCatStringCbCatEx, StringCchCat, , StringCchCatExstrlcat Keine Größenbeschränkung für Daten
_makepath _makepath_s Keine Größenbeschränkung für Daten
_mbscat _mbscat_s
_snprintf _snprintf_s Wird nicht NULL beendet
_sntprintf StringCbPrintf, , StringCbPrintf_lStringCbPrintf_lEx, StringCbPrintfEx, , StringCchPrintfStringCchPrintfEx Wird nicht NULL beendet
_sntscanf _snscanf_s Keine maximale Länge
_snwprintf _snwprintf_s, , StringCbPrintfStringCbPrintf_l, StringCbPrintf_lEx, StringCbPrintfEx, , StringCchPrintfStringCchPrintfEx Wird nicht NULL beendet
_splitpath _splitpath_s Keine Begrenzungsüberprüfung
_stprintf StringCbPrintf, , StringCbPrintf_lStringCbPrintf_lEx, StringCbPrintfEx, , StringCchPrintfStringCchPrintfEx Eingeschränkte Fehlererkennung
_stscanf sscanf_s (erfordert Formatzeichenfolgenänderungen) Keine Begrenzungsüberprüfung
_tccat strcat_s, , StringCbCatStringCbCatEx, StringCchCat, , StringCchCatExstrlcat Keine Begrenzungsüberprüfung
_tccpy strcpy_s, , StringCbCopyStringCbCopyEx, StringCchCopy, , StringCchCopyExstrlcpy Keine Begrenzungsüberprüfung
_tcscat StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Eingeschränkte Fehlererkennung
_tcscpy StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Eingeschränkte Fehlererkennung
_tcsncat StringCbLength, , StringCchLengthUnalignedStringCbLengthUnalignedStringCchLength Keine maximale Länge
_tcsncpy StringCbCopyN, , StringCbCopyNExStringCchCopyNStringCchCopyNEx Eingeschränkte Fehlererkennung
_tmakepath _makepath_s Keine Begrenzungsüberprüfung
_tscanf scanf_s Keine Begrenzungsüberprüfung auf Ausgaben
_tsplitpath splitpath_s, wsplitpath_s Keine Begrenzungsüberprüfung
_vsnprintf _vsnprintf_s, , StringCchVPrintfStringCchVPrintf_l, , StringCchVPrintf_lExStringCchVPrintfEx Eingeschränkte Fehlererkennung
_vsntprintf StringCbVPrintf, , StringCbVPrintf_lStringCbVPrintf_lEx, StringCbVPrintfEx, StringCchVPrintf, StringCchVPrintf_l, , StringCchVPrintf_lExStringCchVPrintfEx Eingeschränkte Fehlererkennung
_vsnwprintf _vsnwprintf_s, , StringCbVPrintfStringCbVPrintf_l, , StringCbVPrintf_lExStringCbVPrintfEx Eingeschränkte Fehlererkennung
_vstprintf StringCbVPrintf, , StringCbVPrintf_lStringCbVPrintf_lEx, StringCbVPrinfEx, StringCchVPrintf, StringCchVPrintf_l, , StringCchVPrintf_lExStringCchVPrintfEx Keine maximale Länge
_wmakepath _wmakepath_s Keine Begrenzungsüberprüfung
_wsplitpath _wsplitpath_s Keine Begrenzungsüberprüfung
OemToCharW WideCharToMultiByte Keine Begrenzungsüberprüfung
StrCat StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Eingeschränkte Fehlererkennung
StrCatA StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Eingeschränkte Fehlererkennung
StrCatBuff StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Keine NULL-Beendigung
StrCatBuffA StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Keine NULL-Beendigung
StrCatBuffW StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Keine NULL-Beendigung
StrCatChainW StringCbCatEx, , StringCbCatNExStringCchCatExStringCchCatNEx Keine NULL-Beendigung
StrCatN StringCbCat, , StringCbCatExStringCbCatN, StringCbCatNEx, StringCchCat, StringCchCatEx, , StringCchCatNStringCchCatNEx Keine Begrenzungsüberprüfung
StrCatNA StringCbCat, , StringCbCatExStringCbCatN, StringCbCatNEx, StringCchCat, StringCchCatEx, , StringCchCatNStringCchCatNEx Keine Begrenzungsüberprüfung
StrCatNW StringCbCat, , StringCbCatExStringCbCatN, StringCbCatNEx, StringCchCat, StringCchCatEx, , StringCchCatNStringCchCatNEx Keine Begrenzungsüberprüfung
StrCatW StringCbCat, , StringCbCatExStringCbCatN, StringCbCatNEx, StringCchCat, StringCchCatEx, , StringCchCatNStringCchCatNEx Keine Begrenzungsüberprüfung
StrCpy StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Keine Begrenzungsüberprüfung
StrCpyA StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Keine Begrenzungsüberprüfung
StrCpyN StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Wird nicht NULL beendet
StrCpyNA StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Wird nicht NULL beendet
StrCpyNW StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Eingeschränkte Fehlerüberprüfung
strcpyW StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Keine Begrenzungsüberprüfung
StrCpyW StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Keine Begrenzungsüberprüfung
StrNCat StringCbCatN, , StringCbCatNExStringCchCatNStringCchCatNEx Eingeschränkte Fehlererkennung
StrNCatA StringCbCatN, , StringCbCatNExStringCchCatNStringCchCatNEx Eingeschränkte Fehlererkennung
StrNCatW StringCbCatN, , StringCbCatNExStringCchCatNStringCchCatNEx Eingeschränkte Fehlererkennung
StrNCpy StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Wird nicht NULL beendet
StrNCpyA StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Wird nicht NULL beendet
StrNCpyW StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Wird nicht NULL beendet
gets gets_s, , fgetsStringCbGets, StringCbGetsEx, , StringCchGetsStringCchGetsEx Begrenzte Fehlererkennung; veraltet durch den C11-Standard
lstrcat StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Eingeschränkte Fehlererkennung
lstrcatA StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Eingeschränkte Fehlererkennung
lstrcatn StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Eingeschränkte Fehlererkennung
lstrcatnA StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Eingeschränkte Fehlererkennung
lstrcatnW StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Eingeschränkte Fehlererkennung
lstrcatW StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Eingeschränkte Fehlererkennung
lstrcpy StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Keine Begrenzungsüberprüfung
lstrcpyA StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Keine Begrenzungsüberprüfung
lstrcpyn StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Eingeschränkte Fehlererkennung
lstrcpynA StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Eingeschränkte Fehlererkennung
lstrcpynW StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Keine Begrenzungsüberprüfung
lstrcpyW StringCbCopy, , StringCbCopyExStringCchCopyStringCchCopyEx Keine Begrenzungsüberprüfung
snscanf sscanf_s Keine Begrenzungsüberprüfung
snwscanf swscanf_s Keine Begrenzungsüberprüfung
sprintf sprintf_s Eingeschränkte Fehlererkennung
sprintfA sprintf_s Keine Begrenzungsüberprüfung
sprintfW swprintf_s Keine Begrenzungsüberprüfung
lstrncat StringCbCat, , StringCbCatExStringCchCatStringCchCatEx Eingeschränkte Fehlererkennung
makepath
nsprintf sprintf_s Keine Fehlererkennung oder Begrenzungsprüfung
strcat strcat_s, , StringCbCatStringCbCatEx, StringCchCat, , StringCchCatExstrlcat Eingeschränkte Fehlererkennung
strcatA strcat_s, , StringCbCatStringCbCatEx, StringCchCat, , StringCchCatExstrlcat Eingeschränkte Fehlererkennung
strcatW strcat_s, , StringCbCatStringCbCatEx, StringCchCat, , StringCchCatExstrlcat Eingeschränkte Fehlererkennung
strcpy strcpy_s, , StringCbCopyStringCbCopyEx, StringCchCopy, , StringCchCopyExstrlcpy Keine Begrenzungsüberprüfung
strcpyA strcpy_s, , StringCbCopyStringCbCopyEx, StringCchCopy, , StringCchCopyExstrlcpy Keine Begrenzungsüberprüfung
strncat strncat_s, , StringCbCatNStringCbCatNEx, StringCchCatN, , StringCchCatNExstrlcat Eingeschränkte Fehlererkennung
strncpy strncpy_s, , StringCbCopyNStringCbCopyNEx, StringCchCopyN, , StringCchCopyNExstrlcpy Eingeschränkte Fehlererkennung
swprintf swprintf_sStringCbPrintf, , StringCbPrintf_lExStringCbPrintf_l, , StringCbPrintfStringCbPrintfEx Eingeschränkte Fehlererkennung
ualstrcpyW strcpy_s, , StringCbCopyStringCbCopyEx, StringCchCopy, , StringCchCopyExstrlcpy Keine Begrenzungsüberprüfung
vsnprintf vsnprintf_s, StringCbVPrintf, , StringCbVPrintf_lExStringCbVPrintf_l, StringCbVPrintfEx, StringCchVPrintf, StringCchVPrintf_l, , StringCchVPrintf_lExStringCchVPrintfEx Eingeschränkte Fehlererkennung
vsprintf vsprintf_s, StringCbVPrintf, , StringCbVPrintf_lExStringCbVPrintf_l, StringCbVPrintfEx, StringCchVPrintf, StringCchVPrintf_l, , , StringCchVPrintf_lEx, , StringCchVPrintfExvasprintf Eingeschränkte Fehlererkennung
vswprintf vswprintf_s
wcscat wcscat_s, , StringCbCatStringCbCatEx, StringCchCat, , StringCchCatExwcslcat Eingeschränkte Fehlererkennung
wcscpy wcscpy_s, , StringCbCopyStringCbCopyEx, StringCchCopy, , StringCchCopyExwcslcpy Keine Begrenzungsüberprüfung
wcsncat wcsncat_s, wcslcat Eingeschränkte Fehlererkennung
wcsncpy wcsncpy_s, , StringCbCopyNStringCbCopyNEx, StringCchCopyN, , StringCchCopyNExwcslcpy Eingeschränkte Fehlererkennung
wnsprintf StringCbPrintf, , StringCbPrintf_lStringCbPrintf_lEx, StringCbPrintfEx, , StringCchPrintfStringCchPrintfEx Keine NULL-Beendigung
wnsprintfA StringCbPrintf, , StringCbPrintf_lStringCbPrintf_lEx, StringCbPrintfEx, , StringCchPrintfStringCchPrintfEx Keine NULL-Beendigung
wsprintf StringCbPrintf, , StringCbPrintf_lStringCbPrintf_lEx, StringCbPrintfEx, , StringCchPrintfStringCchPrintfEx Keine NULL-Beendigung
wsprintfA StringCbPrintf, , StringCbPrintf_lStringCbPrintf_lEx, StringCbPrintfEx, , StringCchPrintfStringCchPrintfEx Keine NULL-Beendigung
wsprintfW StringCbPrintf, , StringCbPrintf_lStringCbPrintf_lEx, StringCbPrintfEx, , StringCchPrintfStringCchPrintfEx Keine NULL-Beendigung
wvnsprintf StringCbVPrintf, , StringCbVPrintf_lStringCbVPrintf_lEx, StringCbVPrintfEx, StringCchVPrintf, StringCchVPrintf_l, , StringCchVPrintf_lExStringCchVPrintfEx Keine NULL-Beendigung
wvnsprintfA StringCbVPrintf, , StringCbVPrintf_lStringCbVPrintf_lEx, StringCbVPrintfEx, StringCchVPrintf, StringCchVPrintf_l, , StringCchVPrintf_lExStringCchVPrintfEx Keine NULL-Beendigung
wvnsprintfW StringCbVPrintf, , StringCbVPrintf_lStringCbVPrintf_lEx, StringCbVPrintfEx, StringCchVPrintf, StringCchVPrintf_l, , StringCchVPrintf_lExStringCchVPrintfEx Keine NULL-Beendigung
wvsprintf StringCbVPrintf, , StringCbVPrintf_lStringCbVPrintf_lEx, StringCbVPrintfEx, StringCchVPrintf, StringCchVPrintf_l, , StringCchVPrintf_lExStringCchVPrintfEx Keine NULL-Beendigung
wvsprintfA StringCbVPrintf, , StringCbVPrintf_lStringCbVPrintf_lEx, StringCbVPrintfEx, StringCchVPrintf, StringCchVPrintf_l, , StringCchVPrintf_lExStringCchVPrintfEx Keine NULL-Beendigung
wvsprintfW StringCbVPrintf, , StringCbVPrintf_lStringCbVPrintf_lEx, StringCbVPrintfEx, StringCchVPrintf, StringCchVPrintf_l, , StringCchVPrintf_lExStringCchVPrintfEx Keine NULL-Beendigung