2010-01-05 3 views
7

Возможно ли преобразовать существующий файл проекта визуальной студии, который создает приложение Win32 в файл проекта, который создает приложение Win32 «Консоль»? Если да, то как это делается? Я искал googled и нашел много людей, делающих обратное, но не так.Возможно ли конвертировать проект приложения Win32 в консольное приложение?

+0

Похоже на то, что у Windows есть такие вещи, как формы и диалоги и т. Д. - вам нужно будет переписать все это. Что касается запуска программ - это должно быть достаточно тривиальным - просто скопируйте файлы из нового проекта приложения в командной строке. О да, и переключатель SUBSYSTEM. –

+0

Yah, Project + Properties, вкладка Application, Output Type = Console Application. Это дает вам консольное окно. Также. –

ответ

12

На уровне компоновщика различие производится с помощью /SUBSYSTEM switch to the linker. Однако, поскольку в Visual Studio существует много другого материала, созданного вокруг типа проекта, иногда проще всего создать новый проект в консольном режиме и добавить существующий код в новый проект.

+0

Я в конечном итоге принял этот совет ... Спасибо .. – dicroce

+0

Вы можете легко это переключить в свойствах проекта: http://hdrlab.org.nz/articles/windows-development/changing-a-windows-app- к-а-консоль-приложения-в-зрительно-студия /. Существует также определение препроцессора: '_WINDOWS', которое должно быть изменено на' _CONSOLE' для сборки отладки и выпуска. –

0

Вы не указали свою версию визуальной студии. В версиях с определениями проектов XML вы можете изменить XML. Черт, вы могли бы сделать это с помощью XSLT. В более старой версии вам лучше создать новый проект.

Вы должны создать два простых проекта (один GUI, один Консоль) и сравнить XML-файлы определения проекта, чтобы увидеть, что нужно сделать.

+0

Visual Studio 2008. Что конкретно следует изменить в XML? – dicroce

1

Я не знаю об автоматическом способе этого. Я думаю, вы можете изменить все настройки проекта, чтобы сделать этот переключатель. Но это было бы утомительно. Я считаю, что было бы проще просто создать новый проект и добавить к нему исходные файлы.

0

Возможно, но это зависит от того, как приложение было задумано. Если дизайн - это тот, который четко отделяет бизнес-логику от презентации, вы можете извлечь код и классы бизнес-логики в отдельную библиотеку, если это еще не сделано. По завершении этого шага вам нужно будет создать новый API для этой библиотеки, чтобы консольное приложение (или любое другое приложение) могло его использовать.

С другой стороны, если формы содержат бизнес-логику, эти процессы нужно будет вытащить в новые классы без представления и включить в ваши новые библиотеки. Как я сказал ... возможно, но может быть много работы.

Смежные вопросы