2012-01-04 17 views
0

OpenGL印刷を行うC++コンソールアプリケーションをビルドします。
全体がglutライブラリとglライブラリによって実行されます。私の新しい目標は、いくつかのWindowsフォームをプロジェクトに追加して、コンソールのアプリケーションが起動する前に、VSによって提供されるテキストボックスやその他のコントロールで「ゲーム」を「構成」できるようにすることです。
現在の問題を解決する最善の方法はWin32 APIを追加することですが、コンソールアプリケーションプロジェクトをwin32 APIと完全に統合する方法はわかりません。
私はC#でそれが.ShowDialog()コマンドでかなり簡単に実行されたことを知っています。Visual Studio 2010 WinFormオブジェクトをC++コンソールアプリケーションプロジェクトに追加する方法

+1

実際の質問(疑問符)は、あなたの質問に含めることをお勧めします。 –

+0

MikeNakis:申し訳ありません、私は十分にはっきりしていませんでした。私は新しいWin32(Windowsフォーム)ウィンドウをC++コンソールアプリケーションコードで初期化する方法を理解しようとしています。 –

+0

CLRをロードして初期化する必要があります。これにはいくつかのショートカットがありますが、それはできません。ダイアログを使用すると、かなり豊富な相互運用性が得られます。 C++/CLI Winformsプロジェクトでコンソールウィンドウを作成し、それ以外の方法でネイティブコードを呼び出すのは簡単です。 –

答えて

1

コンソールアプリケーションからウィンドウを起動することは完全に実行可能ですが、コンソールアプリケーションにはメッセージキューがないため、そのウィンドウは反応しません。 (あるいは、メッセージキューを持っていますが、制御できないコードで実装されています。)したがって、ウィンドウを開いて描画し、手動で更新するように強制できますが、ユーザー入力を受け取ることはできませんその中に。

私はあなたがこの方法でそれをやって忘れることを示唆している、とあなたが設定を要求し、これは、代わりに小さなウィンドウアプリケーションを作成するには、それをコマンドラインパラメータなどの設定を渡してコンソールアプリケーションを起動し、または塗りつぶしインコンソールアプリケーションが読むための設定ファイル。

+0

MikeNakis:答えをありがとう。よく私は最初の部分が好きです、その場合、私はコンソールApplictionを実行する.NETウィンドウを簡単に作成することができます。私の問題は、コンソールアプリケーションがシャットダウンするときです。私は別のウィンドウを開きたい。多分私はC + +の別の.Netウィンドウから実行することができますか?この解決策が「正しい」かどうかは分かりません。 –

+0

もちろん、コンソールアプリケーションからWindowsアプリケーションを起動することもできます。また、Windowsアプリケーションを実行したままにして、コンソールアプリケーションが実行されている間はウィンドウを非表示にし、終了すると再び表示することもできます。このように、あなたは密接に結びついていません。Windowsアプリケーションはコンソールアプリケーションを知っていますが、コンソールアプリケーションはWindowsアプリケーションについて何も知らないのです。 –

関連する問題