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.rarnatü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: x86kompiliren.

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; }