ссылки на другие проекты в visual studio для проектов win32 - PullRequest
3 голосов
/ 17 мая 2010

Я работаю с Win32 API, и мой язык выбора чистый C и нет C ++ .

Предположим, у меня есть проект A , который присутствует в Solution S в visual studio

Я хочу добавить еще один проект B (который имеет некоторые общие служебные функции) в S

Теперь я хочу сослаться на Project B в Project A ... Так что я могу использовать эти служебные функции из Project B на уровне исходного кода. Я не хочу, чтобы он использовался против dll проекта B

предположим, что проект B содержит некоторые математические функции, и я хочу вызвать функции из проекта A, или проект B содержит прибывающие структуры данных, и я хочу использовать их в проекте A

Как этого добиться .... заранее спасибо

1 Ответ

6 голосов
/ 17 мая 2010

Если вы не хотите, чтобы проект B был DLL, тогда он ДОЛЖЕН быть статической библиотекой. Если проект B уже является EXE-файлом, необходимо добавить третий проект: Проект C - проект статической библиотеки, содержащий исходные файлы, совместно используемые A и B. Проекты A и B могут ссылаться на него или перечислять его как проект. зависимость.


Ok. Если вы создадите решение в Devstudio с проектами, то макет по умолчанию на диске будет выглядеть примерно так: проект 3 будет создан как проект статической библиотеки:

c:\Projects\SolutionDir
                       \Project1
                       \Project2
                       \Project3

Переместите исходные (.cpp) И заголовочные файлы (.h) для общих структур и функций в Проект 3.

В проектах A и B найдите «Настройки проекта»> «Компилятор»> «Дополнительные включения» и добавьте запись с надписью

$(SolutionDir)

Теперь в проектах 1 и 2 вы можете ссылаться на файлы заголовков из Project3 следующим образом:

#include "Project3/commonheader.h"
// or
#include "Project1/sharedFunctionDecls.h"
#include "Project2/sharedStructDefs.h"

Щелкните правой кнопкой мыши Project1 (а затем Project 2) и выберите «Project Dependencies ...» и отметьте Project 3.

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