Как сделать программу, которая принимает аргументы командной строки, выходы к консоли и могут быть выполнены в молчаливоC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как сделать программу, которая принимает аргументы командной строки, выходы к консоли и могут быть выполнены в молчаливо

Сообщение Anonymous »

Я пытаюсь создать программу, которая может быть выполнена из терминала командной строки, но также и другими программами (ну, в моем случае, это визуальная студия, когда я запускаю другой проект: отладка в условиях проекта), и и и и Поддержите либо обычный режим, в котором он распечатывает на консоли: либо консоль терминала командной строки, из которой она была запущена, либо новое окно терминала командной строки, если она выполнена другими программами, а также поддерживает Silent Mode, когда он выполняется другими программами: Don 'T показываете окно консоли вообще. Аргументы строки. Из консоли он использует окно консоли, из которого оно было начато. /> Программа может быть принята аргументом командной строки -silent , и в этом случае она не порождает свою собственную консоль при выполнении из другой программы. Я не хочу видеть консоли даже для 1 кадра. несмотря ни на что. Решение, которое я нашел здесь, так что так: #pragma Comment (Linker, "/subsystem: Windows/intry: maincrtStartup") . Теперь, когда программа начинается, она сама по себе не появляется. Так что я сделал, так это то, что я породил консоль и перенаправляю в нее: Allocconsole (); freopen ("conout $", "w", stdout); .
Последняя проблема, которую я имею сейчас, заключается в том, что когда эта программа запускается из консоли, она всегда порождает свою собственную консоль, и нет никакого способа использовать консоль, из которой была запущена программа. Я попытался использовать getConsoleWindow () и _isatty (_fileno (stdout)) , которые я также нашел здесь, но оба возвращают ложь при запуске программы из окна консоли. Вот полная программа из моей попытки: < /p>

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 

#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")

void main(int argc, char* argv[]) {
bool SilentMode{};

if(argc == 1)
SilentMode = false;
else
SilentMode = std::string(argv[1]) == "silent";

bool IsRunningFromInsideConsole = GetConsoleWindow();
bool IsRunningFromInsideConsole2 = _isatty(_fileno(stdout));

if(!SilentMode && !(IsRunningFromInsideConsole || IsRunningFromInsideConsole2)) {
AllocConsole();
freopen("CONOUT$", "w", stdout);
}

std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79443435/how-to-make-a-program-that-takes-command-line-arguments-outputs-to-console-and[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»