Beim Ausführen dieses Programms in VS 2013 wird der folgende Fehler ausgegeben:

1>Fehler C4996: 'ctime': Diese Funktion oder Variable ist möglicherweise unsicher. Verwenden Sie stattdessen ctime_s. Um die Veraltungswarnung zu deaktivieren, verwenden Sie _CRT_SECURE_NO_WARNINGS. Details finden Sie in der Onlinehilfe.

Der C4996-Fehler ist eine Warnung in Visual Studio, die anzeigt, dass Sie eine Funktion oder ein Feature verwenden, das als "veraltet" markiert wurde. Normalerweise wird empfohlen, eine sicherere oder modernere Alternative zu verwenden.

Hier sind mehrere Lösungen:

1. Verwenden Sie empfohlene Ersatzfunktionen

Visual Studio stellt normalerweise eine vorgeschlagene Ersatzfunktion bereit. Beispielsweise gilt strcpy als unsicher, und strcpy_s kann als Alternative verwendet werden.

Beispiel

// Veraltete Verwendung
char dest[100];
strcpy(dest, "Hello, World!");

// Empfohlene Verwendung
char dest[100];
strcpy_s(dest, sizeof(dest), "Hello, World!");

2. Bestimmte Warnung deaktivieren

Wenn Sie sicher sind, dass die Verwendung einer bestimmten Funktion sicher ist, aber diese Warnung trotzdem deaktivieren möchten, können Sie die folgende#pragma warning-Direktive verwenden.

Beispiel

#pragma warning(disable: 4996)

#include <cstring>

int main() {
    char dest[100];
    strcpy(dest, "Hello, World!");
    return 0;
}

3. Warnung global deaktivieren

Wenn Sie diese Warnung global deaktivieren möchten, können Sie sie in den Eigenschaften des Projekts festlegen:

Klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie "Eigenschaften".

Unter "C/C++" -> "Erweitert" finden Sie die Option "Bestimmte Warnungen deaktivieren".

Geben Sie 4996 in das Feld "Bestimmte Warnungen deaktivieren" ein.

4. Compilerdefinitionen ändern

In einigen Fällen kann auch das Ändern der Makrodefinitionen des Compilers das Problem lösen. Sie können#defineverwenden, um bestimmte Warnungen zu ignorieren.

Beispiel

#define _CRT_SECURE_NO_WARNINGS
#include <cstring>

int main() {
    char dest[100];
    strcpy(dest, "Hello, World!");
    return 0;
}

Die Wahl der geeigneten Methode hängt normalerweise von Ihren Anforderungen an Sicherheit und Code ab. Falls möglich, wird empfohlen, sicherere Funktionen zu verwenden, um die als veraltet markierten zu ersetzen.