Ich mach was falsch... Nur WAS?
-
Huhu ich bins nochmal...
Hab ein neues Problem, besser gesagt Warnungen... von Visual C++ 2008 Express
1>------ Erstellen gestartet: Projekt: Learnwinsock2, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>main.c 1>d:\scripting\learnwinsock\learnwinsock2\main.c(65) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> c:\programme\microsoft visual studio 9.0\vc\include\stdio.h(306): Siehe Deklaration von 'scanf' 1>d:\scripting\learnwinsock\learnwinsock2\main.c(81) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> c:\programme\microsoft visual studio 9.0\vc\include\stdio.h(237): Siehe Deklaration von 'fopen' 1>d:\scripting\learnwinsock\learnwinsock2\main.c(108) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> c:\programme\microsoft visual studio 9.0\vc\include\string.h(157): Siehe Deklaration von 'strncpy' 1>d:\scripting\learnwinsock\learnwinsock2\main.c(122) : warning C4047: 'Funktion': Anzahl der Dereferenzierungen bei 'size_t' und 'char [54]' unterschiedlich 1>d:\scripting\learnwinsock\learnwinsock2\main.c(122) : warning C4024: 'sprintf_s': Unterschiedliche Typen für formalen und übergebenen Parameter 2 1>d:\scripting\learnwinsock\learnwinsock2\main.c(124) : warning C4018: '<': Konflikt zwischen 'signed' und 'unsigned' 1>d:\scripting\learnwinsock\learnwinsock2\main.c(150) : warning C4018: '<': Konflikt zwischen 'signed' und 'unsigned' 1>Das Buildprotokoll wurde unter "file://d:\Scripting\Learnwinsock\Learnwinsock2\Debug\BuildLog.htm" gespeichert. 1>Learnwinsock2 - 0 Fehler, 7 Warnung(en) ========== Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen ==========
So habe nun mein vorhaben geändert, nen bissl auf c-worker.ch gestöbert und dort etwas nützliches gefunden. Erst wollte ich Dev-C++ nehmen, doch veraltet.
Dann habe ich durch Empfehlung Visual C++ 2008 Express geholt...Funktioniert aber genausowenig wie DevC++, die gleichen Fehlermeldung, etwa auch veraltet??? Wohl kaum, also mache ich was falschAber WAS
Der Code ist in C verfasst, in C++ kann man den nicht übernehmen. Eingebunden(Libaries) ist auch noch nichts, nur
#include <windows.h> #include <stdio.h> #include <stdlib.h>
-
Nutzt Du das GS Flag in Visual Studio? Sieht fast so aus.
Da wirst Du gewarnt, wenn Du unsichere Sachen wie 'scanf' nutzt.
-
Ich hab keine Ahnung
Hab VC++ eigentlich noch nie richtig benutzt.
Muss ich das Ding abstellen? Oder einfach etwas anderes als "scanf" benutzen?
-
Ne das GS Flag warnt Dich vor unsicheren Code. Das ist gut...
fscanf ist wohl sicherer.
-
OK, anderer Plan, fscanf ist auch nicht sicher genug für ihn...
Ich versuche nochmal den ganzen Code auf C++ umzuschreiben...
Die Header die hier:#include <windows.h> #include <stdio.h> #include <stdlib.h>
sind doch in c++ eigentlich
#include <windows> #include <cstdio> #include <cstdlib>
oder? Und dann brauch ich doch noch "<iostream>" für Ausgaben auf der Konsole
Als nächstes müsste ich dann"using namespace std;"
verwenden um die C-Befehle ja unter std in den Headerfiles stehen oder?
Hier ist der Code, dann könnt ihr euch ein Bild machen
-
Alfons2 schrieb:
Muss ich das Ding abstellen? Oder einfach etwas anderes als "scanf" benutzen?
Du musst es nicht abstellen, du kannst. Oder du kannst scanf_s benutzen, so wie es in der Warnung vorgeschlagen wird.