Título: Crear dll dinamicos Publicado por: patilanz en 29 Diciembre 2014, 01:54 am Estoy intentando hacer un dll para después poder utilizar su función.
Desde visual studio 2013 creo nuevo proyecto de consola win32 vació. Luego le agrego un archivo hpp y cpp. Compilo. Me sale el dll. Creo otro proyecto y lo intento cargar con: Código
Me carga bien la library pero luego me sale error al intentar utilizar la función. Con Alternate DLL Analyzer vi que en la dll no hay funciones. Que hago mal? Saludos @Edit: Los codigo del dll dll_test.hpp Código dll_test.cpp Código
Título: Re: Crear dll dinamicos Publicado por: MCKSys Argentina en 29 Diciembre 2014, 04:57 am Si la DLL tiene la función exportada, entonces el error parece estar cuando haces GetProcAddress. El nombre de la función es sumar, no function.
Saludos! Título: Re: Crear dll dinamicos Publicado por: patilanz en 29 Diciembre 2014, 13:46 pm Ya me di cuanta del error pero sigue igual .No es por el nombre. Ya lo cambie arriba.
Título: Re: Crear dll dinamicos Publicado por: ivancea96 en 29 Diciembre 2014, 15:13 pm Tal vez poniéndole extern "C"{ /* función en el .h */?
Es la única diferencia que logro ver entre tu DLL y las mías xD Título: Re: Crear dll dinamicos Publicado por: BloodSharp en 29 Diciembre 2014, 16:36 pm El error lo tenés en la declaración de función de tu dll...
Código
...cuando debería ser: Código
Que raro que hasta ahora nadie se haya dado cuenta. :laugh: B# Título: Re: Crear dll dinamicos Publicado por: patilanz en 29 Diciembre 2014, 17:14 pm La verdad es que he publicado diferentes códigos :rolleyes: Publique la versión antigua que probé (int sumar(int,int)) y luego lo cambie por void para probar algo mas simple pero seguía igual:
Ahora es así: Código
Código
Código
Perdón por el lió pero sigue sin funcionar. ivancea96 donde se agrega lo de extern? Lo edite también arriba Título: Re: Crear dll dinamicos Publicado por: ivancea96 en 29 Diciembre 2014, 19:07 pm Código
Prueba eso. Título: Re: Crear dll dinamicos Publicado por: patilanz en 29 Diciembre 2014, 19:36 pm Funciona ;-)!
Ahora estoy leyendo que es exactamente lo que hace pero tengo otra duda. Si creo dos funciones que tienen diferentes argumentos como los llamo porque GetProcAddress solo me deja poner el nombre ? Y para clases ? He visto que si quito el lib que me genera también funciona. Que contiene y es necesario? Gracias @Edit: extern "C" es solo para visual studio? Título: Re: Crear dll dinamicos Publicado por: ivancea96 en 29 Diciembre 2014, 20:34 pm Tengo entendido que extern "C" indica que la función es compilada al estilo de C, y no C++.
Que yo sepa, no se pueden exportar clases a DLL. Pero bueno, http://www.codeproject.com/Articles/28969/HowTo-Export-C-classes-from-a-DLL (http://www.codeproject.com/Articles/28969/HowTo-Export-C-classes-from-a-DLL) no parece coincidir. No sé si esa solución sirve en todos los compiladores, pero bueno. Para lo de sobrecargar funciones, ya no sé. Según he mirado, puede tener que ver el archivo '.def', pero yo no lo sé utilizar. (.def with LoadLibrary() (http://www.vbforums.com/showthread.php?146626-def-files-with-LoadLibrary()-(DLL-s))) |