Pregunta

Estoy trabajando en un juego usando Visual C ++. Tengo algunos componentes en proyectos separados, y he establecido 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.

¿Fue útil?

Solución

Configuraciones para compilador

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

Para acceder a la configuración del proyecto:

  1. Haga clic con el botón derecho en el proyecto y seleccione Propiedades.
  2. Seleccione Propiedades de configuración - > C / C ++ - > General.
  3. Establezca la ruta en Directorios de inclusión 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 de inclusión adicionales, 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 del enlazador

Si usa bibliotecas estáticas (es decir, archivo .lib), también deberá agregar la biblioteca a la entrada del vinculador, para que en el momento de la vinculación los símbolos se puedan vincular (de lo contrario obtendrá un símbolo sin resolver):

  1. Haga clic con el botón derecho en el proyecto y seleccione Propiedades.
  2. Seleccione Propiedades de configuración - > Vinculador- > Entrada
  3. Ingrese la biblioteca en Dependencias adicionales.

Otros consejos

#include no tiene nada que ver con los proyectos, solo le dice al preprocesador " ponga el contenido del archivo de encabezado aquí " Si le asigna una ruta que apunta a la ubicación correcta (puede ser una ruta relativa, como ../your_file.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 pregunta.

Es necesario establecer la ruta de acceso a los encabezados en las propiedades del proyecto para que el compilador busque allí cuando intente encontrar el (los) archivo (s) de encabezado. No puedo recordar la ubicación exacta, pero mire las propiedades del Proyecto y debería 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. Utilice solo las subcarpetas en las referencias de ruta cuando sea necesario. De esa manera, es más fácil mover las cosas sin tener que actualizar su código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top