pan mieszać pojęć. "Windows Console" nie jest "cmd.exe", ale specjalną "usługą", która zaimplementowała, na przykład Win7, z "conhost.exe".
Po uruchomieniu dowolnej aplikacji konsolowej (nie ma znaczenia cmd, powershell lub własna aplikacja), Windows uruchamia ją w specjalnym środowisku, które może mieć widoczne okno konsoli. Ale zawsze jest to wewnętrzna konsola systemu Windows.
Ale! Emulatory konsoli mogą przechwytywać to okno, ukrywać prawdziwą konsolę i wyświetlać własną emulowaną powierzchnię. Na przykład możesz uruchomić ConEmu za pomocą specjalnych przełączników (opisanych w SU, link w komentarzu) i gotowe.
wymiana Fabryczna
ConEmu posiada funkcję o nazwie Default Terminal
. Jeśli włączysz tę funkcję, uzyskasz płynne uruchamianie aplikacji z Visual Studio w terminalu ConEmu. Pomysł polega na zahaczeniu CreateProcess w aplikacji źródłowej (explorer.exe
, vcexpress.exe
itd., Ogranicz je za pomocą |
w ustawieniach). Przeczytaj więcej o tej funkcji w project wiki.
Możesz użyć istniejącej instancji ConEmu lub uruchomić nowe okno dla swojej aplikacji. ConEmu może wyświetlić komunikat Press Enter or Esc to close console...
na konsolecie po zamknięciu aplikacji (radio Always
). Nie musisz już dodawać readline
na końcu programu, aby zobaczyć wynik.

Zmiana kodu aplikacji
Bo to jest twój własny program, można dodać, na przykład, następujące wiersze na czele swojej funkcji main
przykład
C++
#ifdef _DEBUG
if (IsDebuggerPresent())
{
STARTUPINFO si = {sizeof(si)}; PROCESS_INFORMATION pi = {};
if (CreateProcess(NULL,
_T("\"C:\\Program Files\\ConEmu\\ConEmu\\ConEmuC.exe\" /AUTOATTACH"),
NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi))
{ CloseHandle(pi.hProcess); CloseHandle(pi.hThread); }
}
#endif
C# przykład
#if DEBUG
ProcessStartInfo pi = new ProcessStartInfo(@"C:\Program Files\ConEmu\ConEmu\ConEmuC.exe", "/AUTOATTACH");
pi.CreateNoWindow = false;
pi.UseShellExecute = false;
Console.WriteLine("Press Enter after attach succeeded");
Process.Start(pi);
Console.ReadLine();
#endif
Podobny Q na superuser http://superuser.com/q/445394/139371 – Maximus
metod podanych w odpowiedzi poniżej działają dobrze, jednak życzę Visual Studio miał wbudowaną obsługę wyboru osoby trzeciej konsoli Emulator do wyświetlania wszystkich danych wyjściowych aplikacji konsoli. (Nadal nie jestem pewien, czy otrzymuję tu moją terminologię, @Maximus! :-)) –
tak, ConEmu ... – Anubis