Domanda

Ho una modalità mista C ++ - programma CLI in Visual Studio 2005 che è impostato per utilizzare l'opzione / SUBSYSTEM: Windows. In generale si tratta di un'applicazione grafica che viene lanciato dalla sua scorciatoia o attraverso il tipo di file registrati ad esso.

Tuttavia, v'è una rara occasione in cui un utente vorrà eseguirlo dalla riga di comando con argomenti. Posso accedere agli argomenti più che bene, la sua quando si tratta di scrivere alla console, in risposta al programma lanciato dalla riga di comando con argomenti, dove non vedo Console::WriteLine avere alcun effetto.

Che cosa sto facendo di sbagliato?

È stato utile?

Soluzione

Questo è fastidioso, sono d'accordo. Non stai facendo nulla di male, si tratta di un capriccio del modo in cui Windows è installato.

E 'possibile risolvere questo problema, almeno in alcuni casi, vedi http://blogs.msdn.com/junfeng/archive/2004/02/06/68531.aspx . Io non ho incontrato nessun altro che ha effettivamente utilizzato questi metodi però.

La maggior parte delle persone IME basta creare due versioni del file eseguibile con nomi diversi, uno per gli utenti in batch ( "MyApp.exe") e uno per quando è eseguito dal menu di avvio ( "myappw.exe").

Per ulteriori informazioni, alcuni dei suggerimenti a Come output la console in C ++ / Windows può essere utile.

Altri suggerimenti

E 'un vecchio problema - vedi http://www.codeproject.com/KB /cpp/EditBin.aspx per le soluzioni

È anche possibile riaprire i flussi a una console

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;
}

modifica: mi dispiace questo è puro C ++, non so su C ++ / CLI

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top