Member 12899279 Ответов: 4

Как запустить cpp exe файл без показа консоли


метод, который я упомянул ниже, заключается в открытии консоли на долю секунды, но я хочу выполнить cpp compile exe-файл, который будет выполняться молча в фоновом режиме, не показывая никакой консоли или командной строки
я сделал пустой проект в visual c++
ниже приведен мой код кто нибудь пожалуйста скажите мне почему его exe показывает cmd на щелевую секунду я не хочу показывать cmd или консоль или что то еще и это не должно быть потому что это пустой проект

Что я уже пробовал:

int main(int argc, char **argv)
{
HWND windowHandle = GetConsoleWindow();
ShowWindow(windowHandle, SW_HIDE);

}

4 Ответов

Рейтинг:
1

OriginalGriff

Самый простой способ-выбрать тип проекта, который не имеет консоли или любой другой формы отображения, или выбрать проект Windows и удалить весь код отображения формы.


Member 12899279

это пустой проект локальное приложение

Member 12899279

это пустой проект локальное приложение

Рейтинг:
1

Rick York

Как вы выполняете приложение? Если вы запускаете его с помощью CreateProcess из одной из ваших программ, есть аргументы, которые вы можете передать в CreateProcess, которые не позволят консоли быть видимой.

Если вы запускаете его двойным щелчком мыши из проводника, то этот метод не является вариантом.


Рейтинг:
0

Dave Kreskowiak

Если вы создали консольное приложение, то при запуске приложения двойным щелчком мыши консоль создается и присоединяется к процессу до начала выполнения кода. В этом случае невозможно предотвратить появление окна консоли.

Ваш единственный другой вариант-не создавать консольное приложение, а вместо этого сделать обычное приложение Windows, как сказал Грифф, и удалить весь код окна.


Member 12899279

это пустой проект местного применения

Dave Kreskowiak

Этот вопрос вообще не имеет смысла.

Member 12899279

тогда почему вы пытаетесь ответить, если вы не можете помочь просто игнорировать

Dave Kreskowiak

Я пытаюсь ответить. Проблема в том, что я сказал, что ваш "вопрос" не имеет никакого смысла. Это означает, что вы должны сделать лучшую работу, задавая его, вероятно, определив, что вы подразумеваете под "локальным приложением".

Member 12899279

(пустой проект для создания локального приложения)это то, что я выбрал, когда создавал проект, и в подсайтеме компоновщика у него нет windows или консоли, он говорит(NotSet) извините, но я думаю, что больше не могу объяснить это

Рейтинг:
0

k5054

Вы что-то ищете system() или, возможно, _popen()? [NB есть широкие версии char из них также как wsystem() and _wpopen()
е.г

#include <cstdlib>

int main()
{
    system("dir");
    return 0;
}

просто запускает команду "dir" без необходимости открывать консоль.

_popen() делает то же самое, но открывает канал, чтобы вы могли читать или записывать команду, например
#include <cstdlib>
#include <iostream>

int main()
{
    FILE *cmdPipe = _popen("dir", "r");
    char buff[1024];
    while(fgets(buff, sizeof buff, cmdPipe) != NULL)
        std::cout << buff;
    fclose(cmdPipe);
    return 0;
}