3

/ SUBSYSTEM:Windowsを使用するように設定されたVisualStudio2005の混合モードC++-CLIプログラムがあります。一般的に言えば、ショートカットから、または登録されているファイルタイプを介して起動されるグラフィカルアプリケーションです。

ただし、まれに、ユーザーが引数を使用してコマンドラインから実行したい場合があります。コマンドラインから引数を指定してプログラムを起動した場合、コンソールへの書き込みに関しては、引数に問題なくアクセスできますが、効果は見られませんConsole::WriteLine

私は何が間違っているのですか?

4

2 に答える 2

3

これは迷惑です、私は同意します。あなたは何も悪いことをしていません、それはウィンドウズがセットアップされる方法の癖です。

これを解決することは可能ですが、少なくとも場合によっては、http://blogs.msdn.com/junfeng/archive/2004/02/06/68531.aspxを参照してください。しかし、実際にこれらの方法を使用している人は他にいません。

ほとんどの人のIMEは、異なる名前の実行可能ファイルの2つのバージョンを作成します。1つはバッチユーザー用( "myapp.exe")で、もう1つはスタートメニューから実行する場合( "myappw.exe")です。

詳細については、C ++/Windowsでコンソールに出力する方法のいくつかの提案が役立つ場合があります。

于 2010-04-01T15:18:05.340 に答える
1

これは古い問題です-解決策についてはhttp://www.codeproject.com/KB/cpp/EditBin.aspxを参照してください

ストリームをコンソールに再度開くこともできます

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

編集:申し訳ありませんが、これは純粋なC ++です、C ++/cliについてはわかりません

于 2010-04-01T15:20:20.370 に答える