Windows-Programm startet in DOs-Box

Hallo werte Mitstreiter,

nachdem ich es nun nach langem Mühen geschafft habe, ein Windows-Programm fehlerfrei zu kompilieren, linken, auszufürhren und ein Fenster zu erzeugen, bleibt die unschöne Eigenart, dass dies zwar aus der IDE korrekt arbeitet, beim Direktaufruf der .exe-Datei aber immer neben-(oder wohl vor-)her ein Dos-Fenster öffnet.

Und allerlei Suchen mit diversen Begriffen hat mich der Lösung nicht näher gebracht.

Ich arbeite unter Netbeans-IDE mit dem Cygwin-C/C+±Compiler. Das Codebeispiel ist in vielen Tutorials verbreitet, also enthält nicht besonderes. Ist übrigens egal, ob ich es als .c oder .cpp erstelle. Hier der Code:

#include \<windows.h\>




LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);




int WINAPI WinMain(HINSTANCE hInstance,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HINSTANCE hPrevInstance,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LPSTR lpCmdLine,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nCmdShow) {




&nbsp;&nbsp;&nbsp; HICON myIcon = (HICON) LoadImage(NULL, "C:\\ping\\pong.ico", IMAGE\_ICON, 16, 16, LR\_LOADFROMFILE);




&nbsp;&nbsp;&nbsp; char szName[] = "Fensterklasse";




&nbsp;&nbsp;&nbsp; WNDCLASS wc;




&nbsp;&nbsp;&nbsp; wc.style = CS\_HREDRAW | CS\_VREDRAW;




&nbsp;&nbsp;&nbsp; wc.lpfnWndProc = WndProc;




&nbsp;&nbsp;&nbsp; wc.cbClsExtra = 0;




&nbsp;&nbsp;&nbsp; wc.cbWndExtra = 0;




&nbsp;&nbsp;&nbsp; wc.hInstance = hInstance;




&nbsp;&nbsp;&nbsp; wc.hIcon = myIcon;&nbsp;&nbsp;&nbsp; //LoadIcon(NULL, IDI\_INFORMATION);




&nbsp;&nbsp;&nbsp; wc.hCursor = LoadCursor(NULL, IDC\_ARROW);




&nbsp;&nbsp;&nbsp; wc.hbrBackground = (HBRUSH) (COLOR\_WINDOW + 1); /\* NULL; \*/ /\*&nbsp; (HBRUSH) GetStockObject (BLACK\_BRUSH); \*/




&nbsp;&nbsp;&nbsp; wc.lpszMenuName = NULL;




&nbsp;&nbsp;&nbsp; wc.lpszClassName = szName;




&nbsp;&nbsp;&nbsp; RegisterClass(&wc);




&nbsp;&nbsp;&nbsp; HWND hwnd = CreateWindowEx(0,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; szName,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Fenster-Überschrift",




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WS\_SYSMENU | WS\_THICKFRAME | WS\_MINIMIZEBOX | WS\_MAXIMIZEBOX,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 400,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 200,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HWND\_DESKTOP,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hInstance,




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL);




&nbsp;&nbsp;&nbsp; ShowWindow(hwnd, nCmdShow);




&nbsp;&nbsp;&nbsp; UpdateWindow(hwnd);




&nbsp;&nbsp;&nbsp; /\* Nachrichten-Schleife \*/




&nbsp;&nbsp;&nbsp; MSG msg;




&nbsp;&nbsp;&nbsp; while (GetMessage(&msg, NULL, 0, 0)) {




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TranslateMessage(&msg);




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchMessage(&msg);




&nbsp;&nbsp;&nbsp; }




&nbsp;&nbsp;&nbsp; return msg.wParam;




}




/\* Windows-Nachrichten-Prozedur \*/




LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {




&nbsp;&nbsp;&nbsp; HDC hdc;




&nbsp;&nbsp;&nbsp; PAINTSTRUCT ps;




&nbsp;&nbsp;&nbsp; switch (message) {




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case WM\_PAINT:




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hdc = BeginPaint(hwnd, &ps);




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TextOut(hdc, 30, 60, "Fensterinhalt", 13);




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EndPaint(hwnd, &ps);




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case WM\_DESTROY:




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PostQuitMessage(0);




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;




&nbsp;&nbsp;&nbsp; }




&nbsp;&nbsp;&nbsp; return DefWindowProc(hwnd, message, wParam, lParam);




}

Code-Formatierung krieg ich leider nicht hin.

Dank für eure Mühe, Zoelomat

Hab’s doch noch rausgefunden
siehe http://www.cplusplus.com/forum/windows/122451/

-mwindows als Compileroption, bei Netbeans unter:

Project Properties -> Build -> C Compiler -> Compilation Line -> Additional Options