Форум программистов, компьютерный форум CyberForum.ru

Убрать консоль при запуске программы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
kaheu
 Аватар для kaheu
34 / 0 / 0
Регистрация: 19.08.2013
Сообщений: 246
27.07.2014, 12:17     Убрать консоль при запуске программы #1
как сделать так чтобы при запуске программы на c++ не открывалась консоль?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5955 / 5560 / 1788
Регистрация: 18.12.2011
Сообщений: 14,209
Завершенные тесты: 1
27.07.2014, 12:29     Убрать консоль при запуске программы #2
Создавайте не консольное приложение, а Win32 application.
Точка входа будет
C++
1
int WINAPI WinMain(HINSTANCE hinst,HINSTANCE,LPSTR cmd,int iShow);
porshe
 Аватар для porshe
52 / 46 / 17
Регистрация: 18.07.2014
Сообщений: 194
27.07.2014, 12:31     Убрать консоль при запуске программы #3
1. Где-то в параметрах компилятора можно указать, что бы не создавалось консольное окно.

В Devcpp это например Параметры компилятора->Настройки->Компоновщик->Не создавать консольное окно
Зависит от среды.

2.Можно вызвать функцию FreeConsole() в начале программы, определение функции лежит в windows.h
NeonLost
Пес войны
 Аватар для NeonLost
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
28.07.2014, 08:14     Убрать консоль при запуске программы #4
Цитата Сообщение от kaheu Посмотреть сообщение
как сделать так чтобы при запуске программы на c++ не открывалась консоль?
C++
1
2
3
4
5
6
7
void Hide()
{
  HWND Hide;
  AllocConsole();
  Hide = FindWindowA("ConsoleWindowClass", NULL);
  ShowWindow(Hide,0);
}
-=ЮрА=-
Заблокирован
Автор FAQ
28.07.2014, 08:35     Убрать консоль при запуске программы #5
kaheu,
BOOL WINAPI CreateProcess(
_In_opt_ LPCTSTR lpApplicationName,
_Inout_opt_ LPTSTR lpCommandLine,
_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ BOOL bInheritHandles,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCTSTR lpCurrentDirectory,
_In_ LPSTARTUPINFO lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
dwCreationFlags = CREATE_NO_WINDOW
CREATE_NO_WINDOW
0x08000000
The process is a console application that is being run without a console window. Therefore, the console handle for the application is not set.
This flag is ignored if the application is not a console application, or if it is used with either CREATE_NEW_CONSOLE or DETACHED_PROCESS.
Если же речь идёт о том чтобы банально спрятать уже существующее окошко консольки то стоит воспользоваться таким кодом
C++
1
2
3
4
5
6
7
8
9
#include <windows.h>
 
int main(){
     HWND hConsole = GetConsoleWindow();//Если компилятор старый заменить на GetForegroundWindow()
     ShowWindow(hConsole, SW_HIDE);//собственно прячем оконо консоли
     //код приложения
     //....
     return 0;
}
Yandex
Объявления
28.07.2014, 08:35     Убрать консоль при запуске программы
Ответ Создать тему
Опции темы

Текущее время: 23:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru