Frage

Ich habe einen gemischten Modus C ++ - CLI-Programm in Visual Studio 2005, das das / SUBSYSTEM verwenden eingestellt ist: Windows. Im Allgemeinen es eine grafische Anwendung, die von ihrer Verknüpfung oder über den Dateityp registriert es gestartet wird.

Allerdings gibt es eine seltene Gelegenheit, in der ein Benutzer mit Argumenten es von der Kommandozeile ausgeführt werden soll wird. Ich kann die Argumente zugreifen ganz gut, seine, wenn es um das Schreiben an die Konsole kommt, als Reaktion auf das Programm von der Kommandozeile mit Argumenten ins Leben gerufen, in dem ich nicht Console::WriteLine keine Auswirkungen sehen zu müssen.

Was mache ich falsch?

War es hilfreich?

Lösung

Dies ist ärgerlich, ich bin einverstanden. Du machst etwas falsch nicht, es ist eine Marotte des Weges, um Windows eingerichtet ist.

Es ist möglich, dieses Problem zu lösen, zumindest in einigen Fällen finden Sie unter http://blogs.msdn.com/junfeng/archive/2004/02/06/68531.aspx . Ich bin gekommen, nicht über alle anderen, die tatsächlich diese Methoden verwendet wird though.

Die meisten Menschen IME schaffen nur zwei Versionen der ausführbaren Datei mit verschiedenen Namen, eine für Batch-Benutzer ( „myapp.exe“) und eine für, wenn es aus dem Startmenü laufen gelassen ( „myappw.exe“).

Für weitere Informationen, einige der Vorschläge unter Wie Ausgabe an die Konsole in C ++ / Windows möglicherweise nützlich sein.

Andere Tipps

Es ist ein altes Problem - siehe http://www.codeproject.com/KB /cpp/EditBin.aspx für Lösungen

Sie können auch die Streams auf einer Konsole

erneut öffnen
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE /*hPrevInst*/, LPSTR cmd_line, int showmode)
{
  AllocConsole(); //create a console
  ifstream conin("con");   // not sure if this should be "con:" ?
  ofstream conout("con");
  cout.rdbuf(conout.rdbuf()); 
  cerr.rdbuf(conout.rdbuf());      
  cin.rdbuf(conin.rdbuf());


  FreeConsole();
  return 0;
}

edit: sorry das ist reine C ++, nicht wissen, über C ++ / cli

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top