sdl projekt startet nicht auf fremden pcs



  • wieder nix

    ich hab mal das projekt hochgeladen. vielleicht funktioniert es nur bei euch?
    www.x-y-a.com/uploads/SDL_Problem.rar

    natürlich muss sdl.dll in system32 vorhanden sein und die ganzen libs in VC

    kriegt ihr das so kompiliert dass es auch auf anderen rechnern läuft?



  • Die Lösung:

    #include <SDL.h>
    
    #ifdef _WIN32
    #undef main
    #endif
    
    int main( int argc, char* args[] )
    {
    
    	SDL_Init( SDL_INIT_EVERYTHING ); 
    	SDL_Quit(); 
    
    	return 0; 
    }
    

    Dieser Code läuft ohne probleme.
    Alle optionen können verwendet werden.
    /MT
    /MTd
    /MD
    /MDd
    die DLL versionen funktioniren auf fremden
    Rechnern nur, wenn man eine manifest erstellt und configuriert.

    Am besten ein neues projekt "leeres Project" erstellen,
    SDL.lib SDLmain.lib nicht vergessen.

    Linker -> System -> Sybsystem: Konsole
    Linker -> System -> Zielcomputer: x86

    kompiliren. 👍

    So einfach 😡
    #undef main <-- bad bad bad 😡 😡 😡 😡

    PS:
    // manifest ausserhalb der exe
    Manifesttool -> Eingabe und Ausgabe -> Manifest einbeten: Nein

    // manifest in die exe integrieren
    Manifesttool -> Eingabe und Ausgabe -> Manifest einbeten: Ja



  • whow

    jetzt funktioniert es

    kennst dich wohl mit VC gut aus?

    das war hart, z.b. darf die exe datei nicht im selben verzeichnis sein, wo manifest-datei ist. (die war bei mir immer vorhanden, obwohl ich sie gar nicht mehr generierte) erst nach dem ich sie gelöscht habe, gings es auf einmal. das hat mich so verwirrt, weil es hätte ja eigentlich funktionieren sollen! das war das heimtückische.

    man müsste alles aufschreiben worauf man achten soll

    ich muss wohl noch einiges rumstellen - später noch, müde erst mal

    Ramsis schrieb:

    So einfach 😡
    #undef main <-- bad bad bad 😡 😡 😡 😡

    ja diese faces interpretieren mich jetzt 😃



  • xBlackKnightx schrieb:

    kennst dich wohl mit VC gut aus?

    eigentlich schon, und wenn nicht dann giebts google



  • Eine bessere Lösung.
    Die Anwendung muss eine win32-Anwendung sein und keine Win32-Konsolenanwendung.
    Kompiliert ohne probleme.

    #include <windows.h>
    #include <SDL.h>
    
    int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,	int nCmdShow)
    {
    
        SDL_Init( SDL_INIT_EVERYTHING );
        SDL_Quit();
    
        return 0;
    }
    

Anmelden zum Antworten