2012-01-07 4 views
1

Я работаю над игрой с разными «модулями», которые я разрабатываю на отдельных проектах на данный момент, с VS2010. До сих пор у меня есть каждый проект в собственном решении, а файл main.cpp используется для инициализации и выполнения некоторых быстрых тестов в моем проекте, которые я часто меняю. Возможно ли (и как) иметь 1 решение, перегруппировав несколько проектов, одновременно имея одну «основную» функцию для каждого проекта, которую я мог бы запустить независимо от других проектов, чтобы конкретно протестировать один проект?Имея несколько проектов на VS2010 и несколько «основных» функций

+0

Вы делаете без изменений C++ правильно? Если вы делаете Visual C++ .NET, сообщите нам об этом. –

+0

Да, это неуправляемый C++ – lezebulon

ответ

3

Вот что я хотел бы сделать:

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

Весь ваш код многократного использования (код, используемый более чем в исполняемом файле) должен быть разделен на проекты, которые скомпилируются в DLL.

Для каждого исполняемого файла, который вы хотите сгенерировать, у вас должен быть проект, который компилируется в исполняемый файл и ссылки/ссылки на библиотеки DLL, от которых он зависит. Каждый исполняемый проект будет иметь свою собственную функцию main, которая запускается при запуске exe.

Если вы хотите протестировать свои DLL без генерации исполняемого файла, вы можете сделать точку входа в свою DLL и run it using rundll32. Это было бы хорошо для разработчиков, тестирующих ваши DLL, но я бы никогда не сказал пользователю использовать rundll32.

0

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

+0

Классы * никогда * не содержат основных методов. Я предполагаю, что вы говорите об установке свойства «Entry Point»? Это не рекомендуется, вы пропустите всю работу, которую CRT делает для вас автоматически за кулисами. –

+0

Ну, я думал о C#, который я недавно коснулся. Не видел тег C++ вопроса. В любом случае у вас может быть один основной проект, а не решение – SJuan76

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