VS warning C4996

Viper2009

Erfahrenes Mitglied
Hallo ich habe eine anwendung geschrieben und bekomme jetzt immer diesen fehler und weis nicht wie ich ihn wegbekomme vieleicht könnt ihr mir ja helfen.

Ich benutze zurzeit Visual Studio 2005 Beta2.
_____________________________________________

c:\projekts\nc\projekt-nc\tinyxml\tinyxml.cpp(91) : warning C4996: 'sprintf' was declared deprecated
c:\programme\microsoft visual studio 8\vc\include\stdio.h(317) : see declaration of 'sprintf'
c:\projekts\nc\projekt-nc\tinyxml\tinyxml.cpp(111) : warning C4996: 'strcpy' was declared deprecated
c:\programme\microsoft visual studio 8\vc\include\string.h(56) : see declaration of 'strcpy'
c:\projekts\nc\projekt-nc\tinyxml\tinyxml.cpp(493) : warning C4996: 'sprintf' was declared deprecated
c:\programme\microsoft visual studio 8\vc\include\stdio.h(317) : see declaration of 'sprintf'
c:\projekts\nc\projekt-nc\tinyxml\tinyxml.cpp(677) : warning C4996: 'fopen' was declared deprecated
c:\programme\microsoft visual studio 8\vc\include\stdio.h(235) : see declaration of 'fopen'
c:\projekts\nc\projekt-nc\tinyxml\tinyxml.cpp(721) : warning C4996: 'fopen' was declared deprecated
c:\programme\microsoft visual studio 8\vc\include\stdio.h(235) : see declaration of 'fopen'
c:\projekts\nc\projekt-nc\tinyxml\tinyxml.cpp(831) : warning C4996: 'sprintf' was declared deprecated
c:\programme\microsoft visual studio 8\vc\include\stdio.h(317) : see declaration of 'sprintf'
c:\projekts\nc\projekt-nc\tinyxml\tinyxml.cpp(838) : warning C4996: 'sprintf' was declared deprecated
c:\programme\microsoft visual studio 8\vc\include\stdio.h(317) : see declaration of 'sprintf'
 
Es sind ja "nur" Warnungen und keine Fehler :)
Dein Programm sollte sich trotzdem kompilieren lassen. Diese Warnungen bedeuten auch nicht, das dein Programm Fehler enthält. Vielmehr werden offensichtlich ab der neuen VC-Version bei Verwendung von potentiell gefährlichem Funktionen (Stichwort: "Buffer Overflow") Warnings ausgegeben.

Um die Warnings nachhaltig zu vermeiden, musst du auf diese Funktionen verzichten. Stattdessen solltest du C++-like arbeiten und die STL (Standard Template Library) benutzen. Beispiele zu Stringverarbeitung sowie I/O-Sachen finden sich in diesem Forum jede Menge.

Ansonsten musst du halt mit den Warnungen leben. Als rein kosmetische Maßnahme kannst du die Warnungen mit einer Präprozessor-Anweisung ausblenden.
Code:
#pragma warning(disable:4996)
 
Zurück