La Web del Programador: Comunidad de Programadores
 
    Pregunta:  161 - LIBRERIA DINAMICA EN VISUAL C++
Autor:  Hector
hola como estan todos .deseo saber si alquien sabe como constrir una libreria dinamica en visual c++ o la forma de utilizar esta en la construccion de un drivers ?

  Respuesta:  Andres Manggini
Hola!

Tu pregunta es bastante amplia, ya que no se si conoces las bases para la creacion de una DLL, y queres saber si Visual C++ te da alguna facilidad o si queres saber desde cero como se hace una DLL . Suponiendo que te referis a lo primero (que es la mas corta ;)
Visual C++ 5.
Con el AppWizard podes decirle que te cree el esqueleto de una DLL para a partir de ahi implementar lo que necesites, tenes 3 opciones al crear una DLL

1) Crear una DLL ´Regular´ con MFC linkeado estaticamente, lo que significa que las librerias de MFC se van a linkear (perdon por el spanglish) junto a tu programa, esto hace que la maquina cliente no tenga que tener las librerias de MFC para utilizarlo. Por otro lado el tamaño minimo de tu programa si utilizas esta opcion posiblememnte este en los 120k.
2) Crear una DLL ´Regular´ con MFC linkeado dinamicamente. Esto hace que la maquina cliente tenga que tener las librerias de MFC instaladas y tu programa pueda ocupar un minimo de unos 20K.
3) Crear una ´Extension DLL´ usando las librerias dinamicamente.

Las dos primeras opciones que dicen ´Regular´ significa que el programa que la use puede estar escrito en cualquier lenguaje ya que tu DLL solo puede exportar funciones del estilo C.

La tercera opcioen ´Extension DLL´ te permite exportar clases, para esto el cliente tiene que ser un programa MFC linkeado dinamicamente.
El cliente puede construir objetos o derivar clases de las clases exportadas por la DLL.
Chau, Suerte!.


  Respuesta:  Hernan Peraza
Veo que deseas hacer drivers!, Debes recordar que bajo modo protegido (Windows) no es posible manejar interrupciones de hardware , DMAs,etc de manera directa, debes diseñar un VXD (controlador de dispositivo virtual, es de 32bits) o puedes crear una DLL (libreria dinamica) de 16 bits (modo real). Una vez desarrollado el vxd or dll , puedes usar las APIs de windowspara cargarlo en tu aplicacion como el CreateFile() o el DeviceIOControl()......... etc...

Desarrollar un DLL es muy sencillo , de hecho cualquier libro de Visual C/C++ dice como lograrlo
Ahora , Si tienes dudas de como hacer un vxd , solo dime ok?

Saludos!