ウインドウアプリもしくはコンソールアプリ共通で使える.exeを作りたいと思っています。
その場合の標準出力の仕方について教えてください。

 (a) コンソールアプリとして使う場合
   - CreateWindowで画像を表示するウインドウを作る
   - 標準出力としてログを取りたい

 (b) ウインドウアプリとして使う場合
   - CreateWindowで画像を表示するウインドウを作る
   - ファイルドロップでプログラムを起動させたい
   - 標準出力のログは不要

AllocConsoleを使えばコンソールに文字列を出すことができるのは分かるのですが、
コマンドプロンプトから実行したときに別のコンソールウインドウを出してしまうため、
リダイレクトでログを取ったりすることができません。
一方、コンソールアプリとしてビルドすると、ファイルドロップ時にやはり
別のコンソールウインドウを出してしまうため、美しくありません。

コマンドプロンプトから起動した場合のみ標準出力をする良い方法はないでしょうか?