

開発環境: Visual Studio 2012

フォームアプリケーションとして作成したプロジェクトに対して、  
`System::Console::WriteLine("XXXX");`をコマンドプロンプトに出力する為には、  
プロジェクトのプロパティのどの設定箇所を変更すれば良いのでしょうか？

コマンドプロンプト上でYYY.exeを叩いて実行して、  
コマンドプロンプト上に標準出力する為のプロパティ設定を教えて下さい。

なお、はじめからコンソールアプリケーションで作る、というのはＮＧです。  
フォームアプリケーションとして作成する理由があるのです。  
フォームアプリケーションをあたかもコンソールアプリケーションのように標準出力を変更する設定箇所がどこかにあるはずですが、見つけられません。  
※以前、同じことをした事があるので、出来るはずです。


CC BY-SA 3.0
2017-06-17T22:02:42.770
35670
2017-06-18T02:37:49.210
2017-06-18T02:37:49.210
4236
23864
question
windows c++-cli コマンドプロンプト
フォームアプリケーションからコンソールへ出力


> コマンドプロンプト上でYYY.exeを叩いて実行して、  
>  コマンドプロンプト上に標準出力する為のプロパティ設定を教えて下さい。

[AttachConsole(ATTACH_PARENT_PROCESS);](https://msdn.microsoft.com/en-
us/library/ms681952\(v=vs.85\).aspx)
を呼び出すことで実現できます。もちろんコマンドプロンプト以外から起動された場合は表示する先が存在しないため何も表示されません。

なお、呼び出し元のコマンドプロンプトはフォームアプリケーションのプロセスを起動した後、プロンプトを表示して次のコマンドを受け付けているため、意図しない動作になるような気がします。

> 質問は System::Console::WriteLine("XXXX"); を有効にするためのプロパティページの設定箇所はどこか？です。

[Linker - System にあるSubsystemの項目](https://docs.microsoft.com/en-
us/cpp/build/reference/subsystem-specify-subsystem)を **Windows
(/SUBSYSTEM:WINDOWS)** から  
**Console (/SUBSYSTEM:CONSOLE)**
に変更することで実現できますが、この設定こそがフォームアプリケーションとコンソールアプリケーションの違いを決定付ける設定ですので、ここを変更することは「はじめからコンソールアプリケーションで作る」になってしまうため、回答から除外しました。


CC BY-SA 3.0
2017-06-17T23:05:10.143
35671
2017-06-17T23:35:22.190
2017-06-17T23:35:22.190
4236
4236
35670
answer


<https://msdn.microsoft.com/ja-jp/library/fcc1zstk(v=vs.110).aspx>  
にてVS2012の設定手順を参照することはできます。

> Visual Studio 開発環境でこのリンカー オプションを設定するには

@sayuriさん  
が書かれているように、これが本来行いたいことかはこちらには分かりません。


CC BY-SA 3.0
2017-06-18T02:10:03.063
35674
2017-06-18T02:10:03.063
4840
35670
answer