У меня есть проект WinForms, и если пользователю нужна консоль отладки, я выделяю консоль с AllocConsole()
.
Весь вывод консоли работает нормально с целевой архитектурой, установленной в "Любой процессор", но когда я меняю ее на "x86", она ничего не выводит (Console.Read()
по-прежнему работает так, как ожидалось). Если я сразу открою EXE, выход будет работать. Похоже, Visual Studio перенаправляет его в собственное окно "Выход".
Я также попробовал этот ответ, но это не сработало, я также пробовал Console.SetOut(GetStdHandle(-11))
, который тоже не работал.
Настройка целевой архитектуры на "Любой процессор" для меня не является вариантом.
Итак, вот мои два вопроса:
- Почему это так, когда целевая архитектура установлена на x86?
- Как я могу выводить на консоль при работе внутри Visual Studio?