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 falsch

    Aber 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

    getpage.c



  • 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.


Anmelden zum Antworten