Использование функций одного проекта в другом проекте под тем же решением - PullRequest
1 голос
/ 19 июля 2011

У меня есть два проекта VC ++ под одним решением prj1 (на основе консоли) и prj2 (на основе формы).Я хочу использовать самостоятельно определенные функции в «prj1» (добавить (int a, int b)) в «prj2» по нажатию кнопки.Я не хочу создавать новый проект, т.е. я хочу только объединить существующие проекты.Я использую Visual Studio 2005, может любой орган выручить меня.

Ответы [ 3 ]

2 голосов
/ 19 июля 2011

Невозможно экспортировать функции на месте, если оба проекта генерируют исполняемые файлы (как в одном консольном приложении и одном приложении Windows).

Поскольку вы уже заявили, что вам не нужны дополнительныеВ проекте есть две опции:

  1. Дублирование кода, имеющего одну копию в каждом проекте
  2. Обмен кодом между проектами (включая необходимые заголовки и исходные файлы в обоих проектах).

Предпочтителен вариант 2, так как он помогает в ведении кода, имеющего одно местоположение для этого кода.

Лучшим вариантом является абстрагирование общего кода в библиотеку, которая может быть связана спроекты, но вы уже заявили, что это не жизнеспособный вариант.Я бы спросил - почему бы и нет?

0 голосов
/ 20 июля 2011

Все зависит от уровня зависимости функции add.Если это автономная функция (например, сортировка), вы можете использовать ее в другом проекте, как рекомендует Чад в пункте 2. Если функция имеет зависимость (формы, классы и другие вещи), у вас могут быть проблемы.Возможно, вам придется поделиться всем этим и в другом проекте.В этом случае вы можете поместить весь этот общий код в DLL (или статическую библиотеку), удалить из обоих проектов и добавить ссылку на эту DLL / LIB в обоих проектах.

  • Project DLL - с add и другими соответствующими функциями / классом
  • Project A, Project B - связь с DLL проекта
0 голосов
/ 19 июля 2011

Извините за глупый вопрос, но есть ли в VS 2005 концепция файла решения? Я знаю, что в C # вы можете добавить несколько проектов в одно решение, и если вы обращаетесь к ним с помощью правильного пространства имен (и, конечно, классы / методы общедоступны и видимы), вы можете использовать их после некоторой реализации. Может быть, VS 2005 вы можете просто загрузить два проекта в решение и получить их таким образом? но я давно не пользовался VS C ++ 2005

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