Обмен исходным кодом между проектами [VS2008, C ++] - PullRequest
2 голосов
/ 25 августа 2009

Как я могу поделиться исходным кодом между двумя проектами в MS Visual Studio 2008 (я программирую на C ++)?
В моем случае у меня есть код для основного игрового проекта, и теперь я хочу создать простой редактор моделей, который использует код игры, чтобы всякий раз, когда я изменял / добавлял какой-то код в одном проекте, он обновлялся во втором.

Ответы [ 3 ]

8 голосов
/ 25 августа 2009

Обычный способ сделать это (вы увидите это повсюду в пакетах с открытым исходным кодом) - это объединить все заголовки в папку «include», а весь исходный код - в папку «source».

Теперь в любом проекте, в котором необходим код, вы переходите к пункту «Свойства проекта-> c / c ++ -> General-> Additional Include Каталоги». Затем добавьте путь к каталогу «include». Наконец, добавьте источник / заголовки в ваш проект, теперь оба проекта ссылаются на одни и те же файлы, которые находятся в удобном месте общего доступа.

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

1 голос
/ 25 августа 2009

У вас есть два варианта:

  1. Создать статическую библиотеку. При этом весь код в библиотеке будет экспортирован и виден всем, кто когда-либо ссылается на эту библиотеку.
  2. Создайте DLL: здесь вы можете определить, какие классы и методы вы хотите экспортировать, и использовать их.

Допустим, у вас есть класс с именем classA, который определен в classA.h и реализован в classA.cpp, и вы хотите использовать этот же класс из двух разных приложений (приложение B и приложение C).

Используя метод 1, вы должны создать статическую библиотеку, перейдя в file-> new win32 project и в появившемся окне выберите настройки приложения и сделайте его «Статической библиотекой». Затем в эту статическую библиотеку вы добавляете ваши classA.h и classA.cpp.

Чтобы использовать эту статическую библиотеку в приложении B или C, перейдите по ссылкам и добавьте ссылку на проект статической библиотеки, который вы только что создали. затем включите classA.h в свое приложение (не забудьте указать путь к дополнительным каталогам включения), и все готово.

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

С общей точки зрения: При использовании статической библиотеки ваш код будет скомпилирован в оба приложения.

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

1 голос
/ 25 августа 2009

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

(я не разработчик C ++, однако вышеприведенное работает для проектов C #, я бы предположил, что оно работает и для проектов C ++)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...