windows - Jeg vil ikke have konsol til at vises, når jeg kører c ++ program

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil skrive et c ++ program, kompilere og linke. Cpp giver .exe-fil. hvis jeg dobbeltklikker på det og udfører det, bliver en konsol åbnet og lukket. Jeg ønsker ikke at konsollen skal vises overhovedet. Hjælp venligst.

Bedste reference


Der er to måder til et Windows-program til at producere et konsolvindue:



  • Programmet er forbundet som et konsol-subsystem exe, hvilket er en anmodning til Windows om altid at angive et tilhørende konsolvindue.

  • Programmets kode selv skaber et konsolvindue.



Den første mulighed, delsystemet Konsol, er langt mest sandsynligt.


Med MinGW g ++-kompilatoren tilføjes kun muligheden


-mwindows


Med Visual C ++-kompilatoren tilføjer du mulighederne, hvis du kompilerer fra kommandolinjen


/link /subsystem:windows /entry:mainCRTStartup


Hvis du bruger Visual Studio, skal du ændre delsystemet til Windows og ændre indgangspunktet til mainCRTStartup i linkoptionerne. [14]


Med Microsofts kompilator kan det være nemmere at bare linke med et modul, der indeholder en WinMain funktion, der i sig selv er en ikke-standard opstartsfunktion, og som i strid med C ++-standarden kalder den almindelige standard main]]. Det skyldes, at med GUI-delsystem (delsystem 'windows') Microsofts kompilator, i modsætning til f.eks. G ++, genkender ikke standard en standard main. Det er simpelthen en Microsoft ting (formodentlig begyndte det som en leverandør lås-in ting).

Andre referencer 1


Det lyder som om du har brug for at opdatere dine Windows Visual Studio-projektindstillinger for ikke at være en konsol-app.


Hvis dette ikke er tilfældet, så send venligst flere oplysninger om dit miljø og værktøjer.

Andre referencer 2


Hvis du ikke kan flytte til et Window-program (jeg mener med GUI), fordi nogle gange du muligvis skal bruge konsollen til output, kan du bruge følgende kode til at skjule konsolvinduet:


HWND hWnd = GetConsoleWindow();
ShowWindow(hWnd, SW\_HIDE);

Andre referencer 3


Hvis du vil oprette et konsoltype-program med en skjult konsol, skal du gøre dette til den første linje i din hovedrutine:


ShowWindow( GetConsoleWindow(), SW\_HIDE );

Andre referencer 4


sørg for at definere \_WINDOWS eller WINDOW under compile og linking. (afhængigt af dit miljø).


På kommandolinjen kan du gøre det som følger


cl -D\_WINDOWS  program.cpp

Andre referencer 5


På CODEBLOCKS, udover hvad @ravenspoint sagde, skal du sætte denne linje på din første linie kode:


#define \_WIN32\_WINNT 0x0501 //this is for XP


Og så:


ShowWindow (GetConsoleWindow(), SW\_HIDE);