Studio 2005 besser/sicherer als Studio 6?
-
Ich habe ein sehr großes SW-Projekt mal von Studio 6 nach Studio 2005 portiert und mir ist aufgefallen, dass es sich schon aufgrund des restriktiveren Compilers lohnt, umzusteigen. Was mich als erstes überrascht hat, waren ein Haufen Warnungen über "unerreichbaren Code" (konnte ich im Nachhinein als schlecht ge"merge"ten Code der Quellcodeverwaltung isolieren). Das konnte VS6 irgendwie nicht feststellen.
Was mir aber neu ist, sind sie SecureCRT-Methoden. Ich stellte es fest, als er ausspuckte: "sprintf is obsolet".Kann mir einer sagen, was das Problem mit den alten CRTs ist? Oder was die neuen besser/anders können?
-
Die meisten CRT Funktionen sind "unsicher", da sie keine Überprüfung der Pointer durchführen (z.B. strcpy, strcat, ...). Ist hier z.B. der Zielpuffer zu klein, so kann dies leicht zu Speicherüberschreibern führen, die keinem (direkt) auffallen.
Siehe auch:
http://whidbey.msdn.microsoft.com/library/en-us/dv_vccrt/html/f87e5a01-4cb2-4379-9e8f-d4693828c55a.asp
http://msdn.microsoft.com/vstudio/express/visualc/features/secure/default.aspx
http://msdn.microsoft.com/library/en-us/dncode/html/secure03102004.asp
http://blogs.msdn.com/shawnfa/archive/2004/04/08/110097.aspxDu kannst die Warnungen aber auch deaktivieren. Um genau gleich zu bleiben wie mit VC6 musst Du folgendes definieren:
_CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE _USE_32BIT_TIME_T