Warnung VS ... strcpy veraltet?
-
Die Warnung sagt ja auch schon, was du dagegen tun kannst (_CRT_SECURE_NO_WARNINGS definieren).
-
Ok danke, dann werde ich die Warnung mal überlesen

Gruß
WAR][FIRE
-
MS stellt übrigens eigene "sichere" Ersatzfunktionen bereit.
Das nennt sich dann z.B. strcpy_s.
http://msdn.microsoft.com/en-us/library/td1esda9(VS.80).aspx
Ich halte von MS internen Anti-Standards überhaupt nichts, aber wenn es MS Freude bereitet, vielleicht interessiert es dich auch.

-
_matze schrieb:
Die Warnung sagt ja auch schon, was du dagegen tun kannst (_CRT_SECURE_NO_WARNINGS definieren).
Oder einfach std::string benutzen...
WAR][FIRE schrieb:
Ok danke, dann werde ich die Warnung mal überlesen

Gruß
WAR][FIRESolltest du dir garnicht erst angewöhnen. Das führt nämlich schnell dazu dass man grundsätzlich alle Warnungen überliest, unter anderem auch die, die einen auf einen wirklichen Fehler im Programm hinweisen (z.B. so Dinge wie
if (a=b)). Ziel sollte es immer sein, ohne Fehler und Warnungen zu compilieren. Wenn eine Warnung auftaucht wegen etwas, was wirklich in Ordnung ist, dann gibts meistens die Möglichkeit, sie im Code mit #pragmas oder ähnlichem temporär auszuschalten.
-
Sehe ich auch so wie pumuckl. Glaub mir, wenn du ein Projekt kompilierst, in dem 100 Mal die Warnung von wegen deprecated vorkommt, dann übersiehst du auch sicher andere, wichtige Warnungen, die sich dazwischen versteckt haben. Definiere _CRT_SECURE_NO_WARNINGS, dann haben sich die nervigen Warnungen erledigt.
-
Ich setze mal einfach noch diese Frage hin, da sie noch niemand gestellt hat:
Wieso verwendest dustrcpy?Grüssli
-
Amun Ra schrieb:
MS stellt übrigens eigene "sichere" Ersatzfunktionen bereit.
Das nennt sich dann z.B. strcpy_s.
http://msdn.microsoft.com/en-us/library/td1esda9(VS.80).aspx
Ich halte von MS internen Anti-Standards überhaupt nichts, aber wenn es MS Freude bereitet, vielleicht interessiert es dich auch.

Das ist kein "Anti-Standard". Du solltest dich vielleicht mal informieren bevor du so ein Kommentar von dir gibst:
http://www.open-std.org/jtc1/sc22/wg14/www/projects#24731 siehe http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1225.pdfEdit: Siehe auch hier: http://en.wikipedia.org/wiki/Strcpy
-
evilissimo schrieb:
Das ist kein "Anti-Standard". Du solltest dich vielleicht mal informieren bevor du so ein Kommentar von dir gibst:
Ich habe mich sehr gut informiert, du musst dir dahingehend keine Sorgen machen, lieber evilissimo.
strcpy_s ist kein Standard, wurde lediglich als Standard vorgeschlagen! MS kennzeichnet die Standardfunktionen mit "Deprecated" was für mich ein Anti-Standard Versuch darstellt.
-
hmmm..
wenn _CRT_SECURE_NO_WARNINGS wirklich nur diese unsafe Warnungen rausschmeißt dann werde ich es mal definieren

@ Dravere: Ich baue auf bereits erstelltes Programm auf. Dort wurde strcpy verwendet, und wenn strcpy softwaretechnisch keine Probleme macht, wollte ich es drin lassen.
@ Amun Ra: M$ Befehle kann ich aufgrund des Kriterium Plattformunabhängigkeit nicht einsetzen.
Ansonsten teile ich natürlich auch pumuckl`s Meinung.
Gruß
WAR][FIRE
-
WAR][FIRE schrieb:
@ Dravere: Ich baue auf bereits erstelltes Programm auf. Dort wurde strcpy verwendet, und wenn strcpy softwaretechnisch keine Probleme macht, wollte ich es drin lassen.
Ich schmeiß mal einfach ein Schlagwort in den Raum: Refactoring.
-
pumuckl schrieb:
WAR][FIRE schrieb:
@ Dravere: Ich baue auf bereits erstelltes Programm auf. Dort wurde strcpy verwendet, und wenn strcpy softwaretechnisch keine Probleme macht, wollte ich es drin lassen.
Ich schmeiß mal einfach ein Schlagwort in den Raum: Refactoring.
Das einzige was ich in VS dazu habe ist Rename... (VS C++ 2008)
Mag sein das die ganzen Refactor Optionen irgendwo versteckt sind

Gruß
WAR][FIRE
-
Dann schau mal außerhalb deiner IDE, z.B. unter Wikipedia.
Gemeint war, die Verwendung von C-Strings durch C++-Strings zu ersetzen, wenigstens in deinem Code, den du hinzufügst.Deine Aussage zur Begründung von strcpy liest sich in etwa wie "Naja, die Hütte die ich ausbauen will war aus Pappe und Wellblech, deshalb nehm ich für die neuen Gebäudeteile auch keine Ziegelsteine"

-
pumuckl schrieb:
Dann schau mal außerhalb deiner IDE, z.B. unter Wikipedia.
Gemeint war, die Verwendung von C-Strings durch C++-Strings zu ersetzen, wenigstens in deinem Code, den du hinzufügst.Deine Aussage zur Begründung von strcpy liest sich in etwa wie "Naja, die Hütte die ich ausbauen will war aus Pappe und Wellblech, deshalb nehm ich für die neuen Gebäudeteile auch keine Ziegelsteine"

Wenn später noch Zeit dafür da ist, werde ich das noch nachholen.
Beim letzten machen wir aber aus ner Mücke.....

Gruß
WAR][FIRE
-
WAR][FIRE schrieb:
enn später noch Zeit dafür da ist, werde ich das noch nachholen.
*hüstel, hüstel* Ja, na klar...

-
Roger Wilco schrieb:
WAR][FIRE schrieb:
enn später noch Zeit dafür da ist, werde ich das noch nachholen.
*hüstel, hüstel* Ja, na klar...

Hehe. Ich will einmal erleben, dass der Kunde sagt: "Es läuft? Na dann lassen Sie sich ruhig noch 2 Monate Zeit und bringen den Source auf Vordermann, wir haben es nicht eilig!"

So etwas passiert wahrscheinlich nur in Bizarro World...

-
WAR][FIRE schrieb:
Beim letzten machen wir aber aus ner Mücke.....

Nein, nicht wirklich. Was Stabilität und Sicherheit angeht ist der Vergleich durchaus so gemeint. Auch wenn Microsoft manchmal etwas eigenwillig zu sein scheint, ist die Warnung über strcpy durchaus gerechtfertigt.
-
strncpy gäbe es ja auch noch. Nur so am Rande...
-
Ich kenne auch diese Aussagen wie
"Das läuft aber so schon seit...!"
oder
"Das ist "getestet" und wird nicht mehr angerührt!"
Oft gibt es dann aber auch Sätze wie:
"Ja, manchmal tritt dies und das auf und wir wissen nicht warum, aber sonst..."
Und nach einem Jahr rennt irgendwer schwitzend durch die Gänge und man hört sowas wie:
"Hätte ich damals bloß..."

Auch nett:
"Das steht aber in allen(!) Fachbüchern so!"
"Alle Fachbücher" sind dann zwei Bücher über den Einstieg in VC++ 6.0 und ein C++ Grundlagen-Buch von DataBecker von 1998

-
Auch gut: "Weißt du, wieviele MT das kostet?"
-
Roger Wilco schrieb:
Ich kenne auch diese Aussagen wie...
Kommt mir bekannt vor (aus einer vergangenen Zeit).
Apropos: Es gibt sogar Firmen in denen der Chef selbst von Zeit zu Zeit Refactoring durchführt, und der - wenn die Qualität dadurch besser wird - auch einem die Zeit dafür gibt (sofern gerade nichts _wirklich_ wichtiges ansteht).
Roger Wilco schrieb:
"Das steht aber in allen(!) Fachbüchern so!"
Ohh ja. Aber manchmal reicht es einen Index aktueller Lektüre vorzulegen, um solche Rufe etwas zu dämpfen.