PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SDL in vc++ installieren



csg
04.11.2005, 13:30
Guten tag auch ;_;

Nunja, eigendlich hatte ich vor mich mit der SDL programmierung mal etwas auseinander zu setzten, doch es will einfach nicht laufen.
Folgende Dinge habe ich getan:
1. SDL dev runtergelden
2. Include verzeichniss eingerichtet
3. SDL.h in das projekt importiert

nun probiere ich halt erstmal ein leeres programm ob das auch alles funktioniert, doch es kommt leider immer folgender Fehler:

LIBCD.lib(wincrt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _WinMain@16
Debug/win32sdl.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

Es kommt auch bei den beispiel dateien für SDL.
was tun? ;_;

Tomsym
04.11.2005, 18:00
Einfach ne Konsolenanwendung erstellen...

int main()

ist der main-Funktionskopf für Konsolenanwendungen.

Für WIndows-Anwendungen gilt:

int WINAPI WInMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpcmdline, int ncmdshow)

Ineluki
05.11.2005, 02:05
ist es nicht ehr

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpcmdline, int ncmdshow)

csg
05.11.2005, 10:05
Der Funktionskopf ist mir schon klar....
selbst wenn ich diesen vorgefertigten code eingebe:


#include <SDL/SDL.h>

int main( int argv, char **argc)

{

SDL_Surface *screen;

if( (SDL_Init(SDL_INIT_VIDEO)) < 0)

{

fprintf(stderr, “Fehler : %s\n”,SDL_GetError());

exit(1);

}

atexit(SDL_Quit);

if ( (screen=SDL_SetVideoMode(640,480,16,SDL_ANYFORMAT)) == NULL)

{

fprintf(stderr,"Error: %s \n”, SDL_GetError());

exit(1);

}

SDL_Delay(2000);

return 0;

}

kommt die Fehlermeldung:

LIBCD.lib(wincrt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _WinMain@16
Debug/SDLtesting1.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

ich denke ich habe irgendetwas falsch eingestellt :/

Dingsi
05.11.2005, 11:31
TomSym gings doch gerade darum dass du NICHT int main( int argv, char **argc) nimmst sondern den WinAPI-Kack. Also anstatt int main() sollst du int WinMain() nehmen.

csg
05.11.2005, 11:39
TomSym gings doch gerade darum dass du NICHT int main( int argv, char **argc) nimmst sondern den WinAPI-Kack. Also anstatt int main() sollst du int WinMain() nehmen.

hab ich versucht, genau das gleich ergebniss.
Ich werde das ganze nachher auf meinem anderen Rechner probieren, vielleicht mag mein Laptop einfach kein SDL :p

Ineluki
06.11.2005, 17:43
ein int WinMain ist nicht genug, weil das schluesselwort WINAPI fehlt