[mingw] leeres Konsolenfenster ausblenden (solved)
-
Hallo!
Ich programmiere mit gtkmm ein Programm, das sowohl unter Linux als auch unter Windows kompilieren soll. Unter Windows nehme ich dazu mingw. Allerdings erscheint beim Starten eines so erstellten Programms aus dem Explorer immer ein leeres Konsolenfenster. Weiß hier grad mal jemand, wie man das los wird?
-
Alle Standardprogramme (also mit main()) haben unter Windows automatisch eine DOS Eingabeaufforderung.
Das kann man nur umgehen, indem man eine win32 Anwendung erstellt. Dazu muss man main() durch WinMain() ersetzen und als win32 Anwendung linken - siehe WinAPI Tutorials.
-
Hmm, schade, hab gehofft, dass es auch irgendwie einfacher geht. So muss ich halt Makros nehmen und je nach OS entweder main oder WinMain kompilieren.
-
Hmm, auch mit WinMain erhalte ich dieses hässliche leere Fenster. Auch ohne gtkmm mit reiner WinApi. Ich poste mal den Quellcode
#include <windows.h> //#include <stdio.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE a2, LPSTR a3, int a4) { MSG msg; HWND hwnd; hwnd = CreateWindow("BUTTON", "Hier Klicken!", WS_VISIBLE | BS_CENTER, 100, 100, 100, 80, NULL, NULL, hInstance, NULL); while(GetMessage(&msg, NULL, 0, 0)) { if(msg.message == WM_LBUTTONDOWN) { //puts("Hallo Welt!"); //fflush(stdout); } else if(msg.message == WM_LBUTTONUP) { DestroyWindow(hwnd); PostQuitMessage(0); } DispatchMessage(&msg); } return msg.wParam; }
Compiliert wird mit
gcc -Wall -o win+console win+console.cpp
Mit Visual C++ 6 krieg ich das Fenster nicht. Aber der VC Compiler kommt für mich nicht in Frage.
-
*push*
Hat hier keiner ne Idee, warum dieses blöde und unnütze Fenster erscheint? Wie werde ich das Teil los?EDIT: Hat sich erledigt. Nachdem ich mir den Quellcode von GIMP mal intensiver angeschaut habe, habe ich die Funktion FreeConsole() entdeckt, die genau das tut, was ich will.