Почему закрытие консоли, которая была запущена с AllocConsole, приводит к закрытию всего моего приложения? Могу ли я изменить это поведение?
Я хочу, чтобы окно консоли просто исчезло или, что еще лучше, было скрыто, но я хочу, чтобы мое приложение продолжало работать. Это возможно? Я хочу иметь возможность использовать Console.WriteLine и чтобы консоль служила окном вывода. Я хочу иметь возможность скрывать и показывать это, и я не хочу, чтобы все приложение умерло только потому, что консоль была закрыта.
EDIT
Код:
internal class SomeClass {
[DllImport("kernel32")]
private static extern bool AllocConsole();
private static void Main() {
AllocConsole();
while(true) continue;
}
}
EDIT 2
Я попробовал принятое решение здесь [Захватить консоль выхода C # ], согласно предложению в комментариях к этому вопросу. Код примера содержит ошибки: DLLImport должен быть «kernel32.dll» или «ядро32», а не «ядро32». После внесения этого изменения я получаю сообщение для моего обработчика для CTRL_CLOSE_EVENT, когда я нажимаю X в окне консоли. Однако вызов FreeConsole и / или возврат true не препятствует завершению приложения.