005
06.02.2009, 19:48 Uhr
0xdeadbeef
Gott (Operator)
|
Bei Code::Blocks ist der gcc schon dabei (MinGW, so mich nicht alles täuscht).
Was den WinMain-Kram angeht...das ist eine etwas haarige Windows-Angelegenheit, die mich jedes mal wieder durcheinander bringt. Windows hat mehrere sog. Subsysteme für ausführbare Dateien. Die üblichsten hier sind Windows und Console, der herausstechendste Unterschied ist, dass das Console-Subset eine Konsole öffnet und stdin/stdout/stderr damit verbindet, während das Windows-Subset das sein lässt und sich im Grunde darauf verlässt, dass der Benutzer sich ein Fenster öffnet, um mit dem User zu kommunizieren. Es gibt noch andere Unterschiede, aber die kannst du in der MSDN nachschlagen.
Außerdem haben die beiden Subsets unterschiedliche Startsymbole - Konsolenanwendungen erwarten eine main oder _tmain, Windows-Anwendungen WinMain. Die beiden unterscheiden sich auch in ihren Signaturen, WinMain sieht üblicherweise so aus:
C++: |
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
|
...wobei WINAPI, glaube ich, zu __stdcall aufgelöst wird. Kann aber auch __fastcall sein, das müsste ich jetzt nachschlagen. Was die komischen Variablennamen angeht, die sind, wenn ich mich recht entsinne, in der windows.h definiert; bevor du die einbindest, willst du aber wahrscheinlich WIN32_MEAN_AND_LEAN definieren, um die problematischeren Makros auszubinden. HINSTANCE ist ein handle auf andere Anwendungen und LPSTR ein char*.
Ansonsten - eine SDL.lib wirst du schon brauchen, um SDL zu linken. Hast du die SDL etwa vorher nicht kompiliert? -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |