vscode visual studio orthography color code close visual-studio-2008

visual studio 2008 - visual - archivo.lib no creado(VS2008)



visual studio code orthography (4)

Agregué un proyecto dll a mi solución y lo referenciado explícitamente por un proyecto ejecutable. El ejecutable se queja de que no puede encontrar la lib.

¿Alguna idea de cómo configurar el proyecto para crear el archivo lib requerido? ¿Y quizás por qué el proyecto no crearía uno?

Aclamaciones

NOTA : he buscado el proyecto y el archivo no se está creando en ningún lado.


¿Incluyó el archivo lib en Project Properties-> Linker-> Input sheet en Exe Project?

Y también asegúrese de haber incluido las referencias adicionales en la pestaña Enlazador.


En la pestaña Enlazador -> Propiedad avanzada del proyecto DLL, verifique que el valor de la Biblioteca de importación (el archivo .lib que está buscando) sea correcto / razonable. El valor de esta propiedad determinará el nombre de la biblioteca de importación y dónde lo escribirá el vinculador.

También puede necesitar generar un archivo de definición de importaciones (.def) en su proyecto, o verificar sus archivos de encabezado y asegurarse de que las funciones exportadas estén etiquetadas con el calificador __declspec (dllexport) en el archivo de encabezado. Esto generalmente se alterna con un #define como:

#ifdef MYAPI_EXPORTS #define MYAPI_API __declspec(dllexport) #else #define MYAPI_API __declspec(dllimport) #endif void MYAPI_API foo(int bar);

Básicamente, usted quiere que el compilador vea dllexport cuando está compilando la biblioteca, pero dllimport cuando su código de cliente es #incluyendo el archivo de encabezado. Si Visual Studio generó la estructura básica del proyecto, probablemente ya haya creado un #define adecuado para usar.

No es necesario que ambos creen el archivo .def y agreguen el dllexport, solo uno u otro. Yo prefiero este último Además, si elige usar un archivo .def, debe especificarlo en las propiedades de Enlazador de su proyecto de biblioteca.


Verifique el proyecto que construye la DLL. Si no está produciendo una .lib, probablemente no se lo haya indicado. Puede cambiar el resultado del proyecto de una DLL a una biblioteca estática en Propiedades-> General-> Tipo de configuración (elija Biblioteca estática .lib)


He visto esto antes Y, de hecho, acaba de golpear es de nuevo recientemente. Un archivo .lib no se crea si no se exporta nada. La exportación de funciones ocurre de dos maneras.

1) marque una función con __declspec (dllexport).

O

2) Use un archivo .def que liste todas las funciones que se exportarán.

Solución:

1) Por lo general, se requiere establecer un indicador de tiempo de compilación para activar un bloque de preprocesador para establecer #define a __declspec (). Alguien más lo mencionó en su publicación.

2) Requiere configurar la línea Propiedades-> Enlazador-> Entrada-> Archivo de definición del módulo.