2016-06-16 17 views
0

私はC++でちょっとした "ラビリンスコンソールミニゲーム"を作っています。それをコンソールでよく見えるメニューを実装しようと時間を節約できるように、Visual Studioのフォームアプリケーションに統合したいと思います。Visual Studio 2013のフォームアプリケーション内でコンソールアプリケーションを実行できますか?

。コンソールゲーム:

The Console Game

フォームアプリケーション:

The Form Application これはさえ可能ですか?

(あなたは気づいているかもしれませんように私はまだ初心者です)

+2

このタグ付きバッチファイルはなぜですか? –

+0

確かに可能ですが、私はいくつかの簡単な方法を提案するのは難しい時があります。だから私はそれが可能である理由を示します:他のすべてが失敗した場合は、コンソールアプリケーションを内部的に実行し、インスタンスのフォームappアプリのI/Oストリームにstd :: in/std ::を再マップし、グラフィックスフォントレンダリングを使用して出力ストリームを作成し、UIからの入力によって入力ストリームを埋めます。コンソールにウィンドウを組み込むためのウィジェットもありますか? (コンパイルの出力を表示するためにIDEでよく使用されるものですが、入力ではほとんど機能しません)。 – Ped7g

+3

uh .. std :: outは、出力としてstd :: outを使用している場合にのみ有効です。テキストモードやncursesライクなライブラリに直接書き込むのと同じように、いくつかの低レベルの出力を使うと、ゲームの出力を内部の出力ストリームに再マップすることは不可能かもしれません。 – Ped7g

答えて

0

これを行う最も簡単な方法は、単にグラフィックスライブラリと固定幅またはビットマップフォント(ラを使用してコンソールの機能を再現するために、おそらくですドワーフの要塞)。私の知る限りでは、実際には別のウィンドウの中にウィンドウをホストすることはできません。そのような時代であっても、コンソールウィンドウはあなたの標準ウィンドウとは少し異なります。

GDI +はおそらく最も簡単な方法ですが、最も簡単です。これはWindowsフォームに組み込まれており、多くの機能を備えた非常に成熟した製品ですが、実際にはゲームを考慮して設計されていません。

実際にDirect2Dが最適なオプションになる可能性があります。これは高速なので最適なオプションです。もう少し複雑ですが、多くの最適化があり、本質的にDirect3Dのサブセットです。 GDI +とDirect2Dを一緒にマッシュするのは難しいことではありませんが、どちらかといえばちょっとした作業が必要です。

関連する問題