2010-01-05 4 views
7

Ist es möglich, eine vorhandene Visual Studio-Projektdatei, die eine Win32-Anwendung erstellt, in eine Projektdatei zu konvertieren, die eine Win32-Anwendung "Console" erstellt? Wenn ja, wie wird das gemacht? Ich habe gegoogelt und viele Leute gefunden, die das Gegenteil tun, aber keine auf diese Weise.Ist es möglich, ein Win32-Anwendungsprojekt in eine Konsolenanwendung zu konvertieren?

+0

Klingt wie ein bisschen Arbeit, wie viel Windows-Zeug ist da - wie Formulare und Dialoge usw. - Sie müssen alle diese neu schreiben. Was das Starten von Programmen betrifft - das sollte trivial genug sein - kopieren Sie einfach die Dateien von einem neuen Kommandozeilen-App-Projekt. Oh ja, und SUBSYSTEM wechseln. –

+0

Yah, Projekt + Eigenschaften, Registerkarte Anwendung, Ausgabetyp = Konsolenanwendung. Das bringt dir ein Konsolenfenster. Auch. –

Antwort

12

Auf der Linker-Ebene wird die Unterscheidung mit der /SUBSYSTEM switch to the linker gemacht. Da sich in Visual Studio jedoch so viel anderes um den Projekttyp herum befindet, ist es manchmal am einfachsten, ein neues Projekt im Konsolenmodus zu erstellen und den vorhandenen Code dem neuen Projekt hinzuzufügen.

+0

Ich landete im Wesentlichen diesen Ratschlag ... Danke .. – dicroce

+0

Sie können dies relativ einfach in den Projekteigenschaften wechseln: http://hdrlab.org.nz/articles/windows-development/changing-a-windows-app- zu einer Konsolen-App-in-Visual-Studio /. Es gibt auch eine Präprozessor-Definition: '_WINDOWS', die in' _CONSOLE' für Debug- und Release-Builds geändert werden sollte. –

0

Sie geben Ihre Version von Visual Studio nicht an. In den Versionen mit XML-Projektdefinitionen können Sie das XML ändern. Verdammt, du könntest es vielleicht mit XSLT machen. In der älteren Version ist es besser, ein neues Projekt zu erstellen.

Sie sollten zwei einfache Projekte erstellen (eine GUI, eine Konsole) und die XML-Dateien der Projektdefinition vergleichen, um zu sehen, was zu tun ist.

+0

Visual Studio 2008. Was speziell sollte ich in der XML ändern? – dicroce

1

Ich kenne keinen automatisierten Weg davon. Ich denke, dass Sie alle Projekteinstellungen ändern können, um diesen Schalter zu machen. Aber es wäre langweilig. Ich glaube, es wäre einfacher, einfach ein neues Projekt zu erstellen und die Quelldateien hinzuzufügen.

0

Es ist möglich, aber es hängt davon ab, wie die Anwendung entwickelt wurde. Wenn das Design die Geschäftslogik klar von der Präsentation trennt, können Sie möglicherweise den Geschäftslogikcode und die Klassen in eine separate Bibliothek extrahieren, falls dies noch nicht geschehen ist. Sobald dieser Schritt abgeschlossen ist, müssen Sie eine neue API für diese Bibliothek erstellen, damit sie von der Konsolenanwendung (oder einer anderen Anwendung) verwendet werden kann.

Auf der anderen Seite, wenn die Formulare Geschäftslogik enthalten, müssen diese Prozesse in neue, nicht darstellende Klassen herausgezogen und in Ihre neuen Bibliotheken integriert werden. Wie gesagt ... möglich, könnte aber viel Arbeit machen.

Verwandte Themen