Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - zeui

#1
mi codigo de la dll que llama a otra es este.

main.cpp


/* dllmain.cpp */

#include "dll.h"
#include <windows.h>
#include <cstdlib>
#include <iostream>



/*----------------------------*/
/*         llamada dll        */
/*----------------------------*/
extern "C" _declspec(dllexport)
int suma_int(int a, int b)
{    
    typedef int (WINAPI*cfunc1)(int, int);
    cfunc1 ConexionDLL1;          
   
    int res = 0;    
    HINSTANCE hLib;        
    hLib = LoadLibrary("Jmysql2");

    if(hLib!=0)
    {
         ConexionDLL1 = (int (__stdcall *) (int, int)) GetProcAddress(hLib,"suma");
         res = ConexionDLL1(a, b);                                        
    }
    else
    {
        res = 2;
        FreeLibrary(hLib);
    }  
   
    return res;            
}




BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                      DWORD reason        /* Reason this function is being called. */ ,
                      LPVOID reserved     /* Not used. */ )
{
   switch (reason)
   {
     case DLL_PROCESS_ATTACH:
       break;

     case DLL_PROCESS_DETACH:
       break;

     case DLL_THREAD_ATTACH:
       break;

     case DLL_THREAD_DETACH:
       break;
   }

   /* Returns TRUE on success, FALSE on failure */
   return TRUE;
}




dll.h


/* dll.h */

#ifndef _DLL_H_
#define _DLL_H_

#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */


#endif /* _DLL_H_ */




esta dll llama a la funcion suma de la dll "Jmysql2" ( obviamente solo suma, es para probar si me funciona... )  (en load library intente con poner la extensión dll y sin dll, vi codigos de ejemplo con ambas opciones)

al probar el codigo (desde ruby) la funcion suma de "Jmysql2" esta funciona perfectamente, pero mi problema radica mas en el codigo que e puesto aqui arriba donde intento cargar una dll dentro de otra.

p.s: respecto al sitio de msdn, estoy revisando los ejemplos posteados por usuarios. pido perdon, en ningun momento revise ese lugar ...

EDIT:---
tal como dije arriba, no se usar C++ X.x, ayuda por favor...
#2
si se como llamar a una dll, pero no me a funcionado. la simple funcion no me va a servir, como dije. no tengo muchos conocimientos de C++.

estoy acostumbrado a usar Ruby, dinamico, simple, hermoso, pero lamentablemente mucho mas lento...

nesecito mas que una simple "funcion"

seria mucha molestia si pido un codigo ejemplo :X?
#3
hola, bueno. emm... resulta que no soy bueno programando con Cpp, nunca e aprendido a usarlo bien y menos llegue a aprender como integrar Api's dentro de mi codigo.
pero ahora tengo este requisito para poder hacer llamada a la Dll que llamaria a otra Dll en ruby ( que es el lenguaje que estoy usando hace un buen tiempo )

he estado intentando y hasta el momento no e logrado mucho.

cree una dll con la funcion "suma"
al llamarla desde ruby funciona a la perfeccion.

pero cree otra dll, la que llama a la funcion "suma" de la dll anterior
y al llamarla desde ruby simplemente esta dll no puede me tira false al usar la funcion LoadLibrary para llamar a la Dll.

que error puedo estar comentiendo?, me ayudan. porfavor :S