Unterschiede zwischen alten VS6 Vc++2008 und Neuen Projekten?



  • Hallo,

    Ich hatte über google gesucht und habe so euer Board gefunden, nachdem ich bei 2 anderen Foren leider keine gute Antwort auf meine Frage bekommen hatte 😞 .

    Ich versuche einen vor Jahren erstellten C++ Source-Code weiterzuarbeiten. Nun aber in V-c++2008 express edition. Leider mit vielen Fehlern, zu viele um alles hier aufzulisten.

    Deshalb wollte ich nur mal eben fragen, was die wichtigsten Unterschiede zwischen programmieren mit den älteren VS6 und dem V-c++2008er sind?

    Der häufigste Fehler den ich bekomme ist: error C4430 Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt

    Der fehler muss aber woanders liegen, denn ich habe int verwendet.

    Und wie sieht das aus mit den DWord Befehlen? Ich denke da könnte mein Fehler liegen.

    Hier mal 2 Ausschnitte aus den Source-Codes

    void _ror DWORD (Value,UCHAR, Shift);
    void _rol DWORD (Value,UCHAR, Shift);
    void DWORD Initrandom, DWORD (dwRange);
    void EncryptBuff (char Base,DWORD dwRV,DWORD Size);
    void DecryptBuff (char Base,DWORD dwRV,DWORD Size);
    void MakePER (char pEncryptBuff,char pDecryptBuff,DWORD dwSize);
    
    ================================================
    
    extern       HINSTANCE hInst;
    extern       HWND	hwndMain; 
    extern       HMENU	hMenu;
    extern       HWND	hButton;
    extern       HWND	hwndTab;
    extern       HWND	hwndDisplay;
    

    Danke und ich hoffe es hat jemand einen Tip oder sogar eine gute Lösung für mich!!! 🙂


  • Mod

    Der größte Unterschied ist der das VC6 einfach inkorrekten Code aktzeptiert hat.

    Schau Dir doch einfach diese zwei Funktionen an:

    void _ror DWORD (Value,UCHAR, Shift); 
    void _rol DWORD (Value,UCHAR, Shift);
    

    Welchen Type soll den Value haben, oder Shift?

    Korrekt wäre:

    void _ror DWORD (int Value, UCHAR c, int Shift); 
    void _rol DWORD (int Value, UCHAR c, int Shift);
    


  • Danke das war ein echt guter tip, hätte ich auch selber drauf kommen können.
    🙄

    Jetzt besteht noch folgendes Problem (häh wieso denn <prsht.h>) 😕 :

    C:\Programme\Microsoft SDKs\Windows\v6.0A\include\prsht.h(97) 
    : error C2065: 'CALLBACK': nichtdeklarierter Bezeichner
    
    C:\Programme\Microsoft SDKs\Windows\v6.0A\include\prsht.h(97) 
    : error C2065: 'LPFNPSPCALLBACKA': nichtdeklarierter Bezeichner
    
    C:\Programme\Microsoft SDKs\Windows\v6.0A\include\prsht.h(97) 
    : error C4430: Fehlender Typspezifizierer - 
    int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    

    grüße!


  • Mod

    Weil Du windows.h nicht zuerst includest...

    Vielleicht solltest Du mal etwas SDK Doku lesen 😉


Anmelden zum Antworten