SDL in anderer Main



  • Hi,
    ich kann SDL nur in der WinMain nutzen:

    int WINAPI WinMain(HINSTANCE hInstance, // Handle der Programminstanz
    HINSTANCE hPrevInstance, // Handle der letzten Instanz
    LPSTR lpCmdLine, // Kommandozeile
    int nCmdShow) // Art wie das Fenster angezeigt werden soll

    möchte aber gerne eine Plattforumunabhängige Main nutzen wie:
    int main().

    Wie kann ich das in VC++6 erreichen?



  • Warum machst du nicht einfach so etwas:

    #ifdef _WIN32
    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nShow)
    #else
    int main( int _argc, char *_argv[] )
    #endif	
    {
    
        return 0;
    }
    


  • Indem Du nach WINDOWS, nicht CONSOLE linkst. Schau' mal in die Projekteinstellungen. Notfalls ein neues Projekt NICHT als Win32- sondern als Konsolen-Anwendung beginnen.

    Alternativ ginge auch sowas (grob aus dem Kopf):

    int main(int argc, char* argv[])
    {
        return WinMain(GetModuleHandle(NULL), NULL, GetCommandLine(NULL), SH_NORMAL);
    }
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nShow)
    {
        // KRAM MACHEN
    
        return EXIT_CODE;
    }
    

    Das kannst Du nach KONSOLE oder WIN32 linken wie Du lustig bist.



  • So mach ich das

    #ifdef _WIN32
    #undef main
    #endif
    

    Gruß
    BigBoomer



  • vielleicht vergessen SDLmain zu linken. Je nach Compiler geht das anders, beim gcc einfach -lSDLmain angeben.
    geloescht


Anmelden zum Antworten