Как сослаться на один проект VC++ из другого в том же проекте?

Я новичок в Visual Studio. Нужна ваша помощь в следующем.

Visual Studio 2005, VC++
1 решение содержит 2 проекта.
Давайте назовем решение "solution"
Проект 1 называется "p1", а проект 2 называется "p2"
Нужно ли мне экспортировать функции и классы из 'p1', чтобы я мог использовать их, импортируя в 'p2'?
Что, если я просто включу файлы заголовков, а затем сразу же вызову функции, вызывая их?

Спасибо, вирен


person zack    schedule 29.07.2009    source источник


Ответы (2)


Если я правильно помню (какое-то время не использовал C++), существовало два разных типа библиотек C++ — статическая библиотека (файл .lib) и динамическая библиотека (файл .dll).

В случае статической библиотеки вам нужно было настроить p2 так, чтобы он ссылался на p1.lib (в свойствах проекта); добавить p1 к зависимостям p2, чтобы он всегда строился первым; а затем при необходимости включите файлы .h из p1.

Файл .dll был немного сложнее - файлы .h должны были иметь __declspec(dllimport) и __declspec(dllexport), я думаю. И было еще немного волшебства. Не уверен на самом деле. Но это ключевые слова, которые могут помочь вам начать работу.

Обратите внимание, что это ключевое слово, специфичное для MS, и оно не будет работать на других компиляторах.

person Vilx-    schedule 29.07.2009

Все, что вам нужно сделать, чтобы использовать эти функции, — это изменить зависимости проектов.

Щелкните правой кнопкой мыши p2 (или p1), выберите «Зависимости проекта». Выберите p1 (или p2) и включите то, что вы хотите использовать. Это так просто.

person David Menard    schedule 29.07.2009