Crear una dll a partir de una static library (.lib)

20/02/2004 - 10:22 por Salva | Informe spam
Hola,

me han llegado una serie de liberías estáticas (.lib) y
quiero pasarlas a dll. El problema es que no tengo el
código de estas librerías, sólo tengo el archivo .lib y
algun archivo .h. Estas librerías estan compiladas con
Visual C++ 6.0. Me han dicho que tengo que crear un
proyecto con Visual C++ como Dynamic Library (DLL) y que
tengo que declarar funciones en mi proyecto, que llamen a
las funciones de la librería que quiero utilizar.

Me han surgido varias dudas sobre este tema.

- ¿En el proyecto dll tengo que crear sólo el
archivo .cpp o también el archivo .h?

- ¿Tengo que crear un archivo .def para la librería dll
que estoy creando?

- ¿Si la librería .lib utiliza funciones que estan
declaradas en clases, tengo que incluir los archivos .h
donde estan declaradas estas clases en el proyecto dll?

Si alguien tiene algún artículo sobre creación de dll a
partir de lib o alguna cosa similar y me lo puede
indicar, le estaría muy agradecido.

Muchas gracias.
 

Leer las respuestas

#1 Rodrigo Corral González [MVP]
20/02/2004 - 10:46 | Informe spam
No entiendo muy bien por que tienes esta necesidad de combertir de lib a
dll.

- ¿En el proyecto dll tengo que crear sólo el
archivo .cpp o también el archivo .h?

Debes crear tambien un archivo .cpp supon que en el .h del .lib tienes int
funct1(int a, char *b);

En el cpp debes poner algo como

__declspec( dllexport ) int Myfunct1(int a, char *b)
{
return funct1(a, b);
}

- ¿Tengo que crear un archivo .def para la librería dll
que estoy creando?
Si necesitas exportar los nombre no decorados necesitaras un archivo .def y
declarar las funciones como extern "C"

- ¿Si la librería .lib utiliza funciones que estan
declaradas en clases, tengo que incluir los archivos .h
donde estan declaradas estas clases en el proyecto dll?

Deberas exportar las clases en la dll, para ello deberas segir la misma
tecnica que con las funciones de construir un wrapper a su alrededor.


Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net

Preguntas similares