Wie kann ich machen, das die main zuerst startet?
-
Hallo!
Ich schreibe ein Programm, dort benutz ich Direct X, ich lerne es gerade.
In einem Tut wird das Programm hiermit gestartet ->INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT ) { // Fensterklasse WNDCLASS wc; wc.hInstance = hInst; // Handle der Instanz wc.lpszClassName = "MyWin"; // Name der Fensterklasse wc.lpfnWndProc = MsgProc; // Die Fensterroutine zum Verarbeiten von Meldungen wc.style = 0; // Standard Fenster wc.hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON1));// Icon wc.hCursor = 0; // Keinen besonderen Cursor wc.lpszMenuName = NULL; // Kein Menü wc.cbClsExtra = 0; // Keine Keine Extras wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // Fenster weiß färben // .........
Wen ich debugge wird diese Funtkion immer als erstes aufgerufen, ich will aber, das das Programm mit der funktion
int main()
startet, was ist zu tun?
Somit will ich alles besser unter kontrolle haben, und z.B. selbst bestimmen, wann das Fenster erscheint, oder was davor passiert usw
Grüsse
DaMiNaToR
-
Du musst die WinAPI-Main nehmen, da das kein std-C++ mehr ist.
mfg
-
Abgesehen davon ist die winmain (Fast) das gleiche wie die main, nur dass du nen
paar Parameter mehr hast.
Du kannst dort genau das gleiche machen wie in der normalen main.Dein Problem liegt wohl einfach daran, dass du dich mit der Windowsprogrammierung
noch nicht auskennst, der Code im Rumpf bestimmt nur wie das Fenster aussieht.Lösche doch mal das RegisterClass, ShowWindow und UpdateWindow, weiter unten im Code,
dann zeigt es das Fenster nicht mehr an (Und die Schleife mit GetMessage brauchste, dann auch nicht mehr).
-
Mit WinMain wird übrigens auch kein Dos Fenster mehr angezeigt.
Du kannst natürlich auch per main() ein Fenster erstellen, aber dann hast du immer ein hässliches Dos Fenster in der Gegend rumschwirren.
-
OK Danke Leute
Jetzt weiss ich, was die Funktion macht.
-
SirLant schrieb:
Du kannst dort genau das gleiche machen wie in der normalen main.
zB. cout << argv[0]; ? :p
Bei dem gcc kann man einstellen ob man die Dos-Box sehen will. Da braucht man keine dumme WinMain-Funktion.
(hoffe ich habe das richtig in Erinnerung)