2016-06-16 9 views
0

Ich habe ein kleines "Labyrinth-Konsolen-Minispiel" in C++ erstellt und möchte es in eine Formularanwendung in Visual Studio integrieren, damit ich beim Versuch, ein gut aussehendes Menü in der Konsole zu implementieren, Zeit sparen kann.Kann ich eine Konsolenanwendung innerhalb einer Formular-App in Visual Studio 2013 ausführen lassen?

Das Konsolenspiel:

The Console Game

Das Formular Anwendung:

The Form Application Ist das überhaupt möglich?

(Ich bin immer noch ein Anfänger, wie Sie vielleicht bemerkt haben)

+2

Warum ist diese Batch-Datei markiert? –

+0

Sicher ist es möglich, aber ich habe es schwer, einen einfachen Weg vorzuschlagen. Also werde ich nur zeigen, warum es möglich ist: Wenn alles andere fehlschlägt, können Sie die Konsolen-App intern ausführen und die std :: in/std :: -Option von Ihrer Instanz in Ihre Formular-App-I/O-Streams umwandeln und dann die Ausgabestream mit Grafikschrift-Rendering und füllen Sie den Eingabestream durch Eingabe von UI. Dann wieder, vielleicht gibt es sogar ein gebrauchsfertiges Widget, um die Konsole in das Fenster zu integrieren? (In IDEs üblich, um die Ausgabe der Kompilierung anzuzeigen, obwohl diese selten mit Eingaben arbeiten). – Ped7g

+3

uh .. und das std :: out funktioniert natürlich nur, wenn Sie std :: out für die Ausgabe verwenden. Wenn Sie eine Low-Level-Ausgabe verwenden, z. B. direkt in den Textmodus schreiben oder eine ncurses-ähnliche Bibliothek, ist es möglicherweise nicht möglich, die Ausgabe des Spiels dem internen Ausgabestream zuzuordnen. – Ped7g

Antwort

0

Der einfachste Weg, dies zu tun, ist wahrscheinlich die Konsole Funktionalität unter Verwendung einer Grafikbibliothek einfach neu erstellen und eine feste Breite oder Bitmap-Schrift (a la Zwergenfestung). Meines Wissens kann man ein Fenster in einem anderen Fenster nicht einmal zu den besten Zeiten hosten, und die Konsolenfenster unterscheiden sich ohnehin ein wenig von Ihrem Standardfenster.

GDI + ist wahrscheinlich der einfachste, wenn auch langsamste Weg. Es ist in Windows Forms integriert und ist ein sehr ausgereiftes Produkt mit vielen Funktionen, aber es ist nicht wirklich mit Spielen konzipiert.

Direct2D könnte tatsächlich eine bessere Option sein, die Ihre beste Option sein könnte, da es schneller ist. Es ist ein bisschen komplizierter, aber es hat eine Menge Optimierung und ist im Wesentlichen eine Untermenge von Direct3D. Es sollte nicht zu schwer sein, GDI + und Direct2D zusammen zu mischen, auch wenn es ein wenig Arbeit braucht.

Verwandte Themen