Pregunta

Tengo un modo C ++ mixta - CLI programa en Visual Studio 2005 que está configurado para utilizar el / SUBSISTEMA: Windows. En términos generales, es una aplicación gráfica que se lanza desde su acceso directo o mediante el tipo de archivo registrado a la misma.

Sin embargo, hay una rara ocasión en que un usuario querrá ejecutarlo desde la línea de comandos con argumentos. Puedo acceder a los argumentos muy bien, su cuando se trata de escribir en la consola, en respuesta al programa que está siendo lanzado desde la línea de comandos con argumentos, en la que no veo Console::WriteLine tener ningún efecto.

¿Qué estoy haciendo mal?

¿Fue útil?

Solución

Éste es molesto, estoy de acuerdo. No estás haciendo mal algo, es una peculiaridad de la forma en que Windows está configurado.

Es posible solucionar esto, al menos en algunos casos, véase http://blogs.msdn.com/junfeng/archive/2004/02/06/68531.aspx . No he encontrado a nadie que realmente se utiliza estos métodos sin embargo.

La mayoría de la gente simplemente IME crear dos versiones del ejecutable con nombres diferentes, uno para los usuarios por lotes ( "myapp.exe") y otro para cuando se ejecuta desde el menú de inicio ( "myappw.exe").

Para obtener más información, algunas de las sugerencias en Cómo salida a la consola en C ++ / Windows puede ser útil.

Otros consejos

Es un viejo problema - ver http://www.codeproject.com/KB /cpp/EditBin.aspx de soluciones

También puede volver a abrir las corrientes a una consola

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: Lo siento esto es pura C ++, no sé sobre C ++ / CLI

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top