Если вы не хотите, чтобы проект 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.