leere winapi winmain funktion funzt nicht



  • ich hab neu mit c++ angefangen und wollte nun mit der windowsprogrammierung anfangen, hatte aber schon bei einer leeren winmain funktion einen fehler.?

    #include <windows.h>
    
    int WINAPI WinMain()
    
    {
    
    	return 0;
    
    }
    

    --------------------Konfiguration: neu - Win32 Debug--------------------
    Kompilierung läuft...
    neu.cpp
    C:\.....\neu.cpp(5) : error C2731: 'WinMain' : function cannot be overloaded
    C:\.....\neu.cpp(4) : see declaration of 'WinMain'
    Fehler beim Ausführen von cl.exe.

    neu.exe - 1 Fehler, 0 Warnung(en)



  • ich denk ma das du die parameter von winmain vergessen hast:

    WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, 
    	      LPSTR lpCmdLine, int nShowCmd )
    


  • wenn ich die eingebe habe ich 2 fehler



  • #include <windows.h>
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    {
    
        return 0;
    }
    

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/winmain.asp



  • funzt leider auch nicht die fehleranzeige bleibt
    trotzdem danke



  • kann es sein das du schon irgendwo eine winmain hast 😕



  • Die Aufrufskonvention WINAPI ist veraltet (stammt noch aus Windows 3.1 Zeiten).

    Heute schreibt man CALLBACK. Probier das mal. 🙂



  • beim code wie ganz oben inklusive der parameter der winmain und der ersetzung von winapi durch callback tritt nun folgender fehler auf

    --------------------Konfiguration: neu - Win32 Debug--------------------
    Kompilierung läuft...
    neu.cpp
    Linker-Vorgang läuft...
    LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Debug/neu.exe : fatal error LNK1120: 1 unresolved externals
    Fehler beim Ausführen von link.exe.



  • hasste wahrscheinlich nen konsolen projekt erstellt, musste aber nen windows-projekt erstellen.

    Was verwendeste du für ne Oberfläche?



  • Power Off schrieb:

    Die Aufrufskonvention WINAPI ist veraltet (stammt noch aus Windows 3.1 Zeiten).

    Heute schreibt man CALLBACK. Probier das mal. 🙂

    Am besten du schreibst gar nix hin, macht MSDN zumindest so.



  • Power Off schrieb:

    Die Aufrufskonvention WINAPI ist veraltet (stammt noch aus Windows 3.1 Zeiten).
    Heute schreibt man CALLBACK. Probier das mal. 🙂

    ist vermutlich compiler abhängig den in meiner winddef steht

    #define WINAPI __stdcall
    #define CALLBACK __stdcall
    


  • bei diesem code tritt nun folgender fehler auf:

    #include <windows.h>
    
    int CALLBACK __stdcall WinMain(HINSTANCE hInstance,      
                       HINSTANCE hPrevInstance,  
                       LPSTR lpCmdLine,          
                       int nCmdShow)
    
    {
    	return 0;
    
    }
    

    Linker-Vorgang läuft...
    LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Debug/hoffn2.exe : fatal error LNK1120: 1 unresolved externals
    Fehler beim Ausführen von link.exe.

    (ich bin mir sicher dass ich eine win32 anwendung habe!)

    könnte das irgendwie mit dem compiler zusammen hängen? und wenn
    könnte mir jemand einen guten empfehlen?
    danke



  • entweder callback oder stdcall denn callback == stdcall und zweimal brauchst du es nicht schreiben

    researchk schrieb:

    (ich bin mir sicher dass ich eine win32 anwendung habe!)

    glaub ich nicht

    researchk schrieb:

    könnte das irgendwie mit dem compiler zusammen hängen? und wenn
    könnte mir jemand einen guten empfehlen?

    empfehlen könnt ich dir nur ein grundlagen buch oder tutorial (nicht böse nehmen)



  • wenn ich winapi od callback weglasse sagt der compiler ihm fehle genau dieses wort



  • researchk schrieb:

    wenn ich winapi od callback weglasse sagt der compiler ihm fehle genau dieses wort

    du sollst ja auch nur eins weglassen. 😃

    hab jetzt mal vc6 installiert.
    anleitung:
    neu-->projekte->win32 anwendung-->leeres projekt
    projekt-->dem projekt hinzufügen-->neu-->*.cpp

    #include <windows.h>
    
    int __stdcall WinMain(HINSTANCE hInstance,      
                       HINSTANCE hPrevInstance,  
                       LPSTR lpCmdLine,          
                       int nCmdShow)
    {
        return 0;
    }
    

    kompilieren
    fertig



  • researchk schrieb:

    (ich bin mir sicher dass ich eine win32 anwendung habe!)

    Garantiert nicht! Du hast 100%ig eine Konsolenanwendung gewählt. Denn genau das sagt Dir diese Fehlermeldung:

    researchk schrieb:

    error LNK2001: unresolved external symbol _main

    Der Linker sucht eine main Funktion, findet sie bei Dir aber nicht.


Anmelden zum Antworten