visual c ++: #include archivos de otros proyectos en la misma solución

Estoy trabajando en un juego usando Visual C ++. Tengo algunos componentes en proyectos separados y he configurado las dependencias del proyecto. ¿Cómo # #incluyo un archivo de encabezado de un proyecto diferente? No tengo idea de cómo usar las clases de un proyecto en otro.

Configuraciones para el comstackdor

En el proyecto en el que desea #incluir el archivo de encabezado de otro proyecto, deberá agregar la ruta del archivo de encabezado en la sección Incluir directorios adicionales en la configuración del proyecto.

Para acceder a la configuración del proyecto:

  1. Haga clic derecho en el proyecto y seleccione Propiedades.
  2. Seleccione Propiedades de configuración-> C / C ++ -> General.
  3. Establezca la ruta en Incluir directorios adicionales.

Cómo incluir

Para incluir el archivo de encabezado , simplemente escriba lo siguiente en su código:

#include "filename.h" 

Tenga en cuenta que no necesita especificar la ruta aquí, porque ya incluye el directorio en los directorios adicionales de inclusión, por lo que Visual Studio sabrá dónde buscarlo.

Si no desea agregar cada ubicación de archivo de encabezado en la configuración del proyecto, puede incluir un directorio hasta un punto, y luego #incluir relativo a ese punto:

 // In project settings Additional Include Directories ..\..\libroot // In code #include "lib1/lib1.h" // path is relative to libroot #include "lib2/lib2.h" // path is relative to libroot 

Configuración para el enlazador

Si utiliza bibliotecas estáticas (es decir, archivo .lib), también deberá agregar la biblioteca a la entrada del vinculador, de modo que en el momento de la vinculación los símbolos puedan vincularse (de lo contrario, obtendrá un símbolo no resuelto):

  1. Haga clic derecho en el proyecto y seleccione Propiedades.
  2. Seleccione Propiedades de configuración-> Enlazador-> Entrada
  3. Ingrese la biblioteca bajo Dependencias Adicionales.

#include no tiene nada que ver con proyectos: simplemente le dice al preprocesador “poner aquí el contenido del archivo de encabezado”. Si le da un camino que apunta a la ubicación correcta (puede ser una ruta relativa, como ../tu_archivo.h) se incluirá correctamente.

Sin embargo, tendrá que aprender acerca de las bibliotecas (bibliotecas estáticas / dinámicas) para que dichos proyectos se vinculen correctamente, pero esa es otra cuestión.

Debe establecer la ruta a los encabezados en las propiedades del proyecto para que el comstackdor busque allí cuando intente encontrar los archivos de encabezado. No recuerdo la ubicación exacta, pero mira las propiedades del Proyecto y deberías verla.

Intente evitar las referencias de ruta completas en la directiva #include, ya sean absolutas o relativas. En su lugar, agregue la ubicación de la carpeta de inclusión del otro proyecto en la configuración de su proyecto. Use solo subcarpetas en las referencias de ruta cuando sea necesario. De esta forma, es más fácil mover cosas sin tener que actualizar su código.