Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/09/2011, 07:05
krev16
 
Fecha de Ingreso: julio-2011
Mensajes: 53
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Interacción DLL en C - DLL en Basic

Hola. Bueno mira este es el código que he utilizado, pero solo me ha funcionado en un exe, no en una DLL. Además, la función saludo de la DLL en vb6 crea un msgbox pero al cargar la DLL y llamar a esa funcion desde C no hace nada. La única funcion que pude hacer funcionar de la DLL de basic, desde una en C fue la de abrir una ventana MS-DOS (shell "cmd", vbNormalFocus). Las demás no me han funcionado. He aquí mi código:

dllmain.c

Código:
#include "dll.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

doSaludo()
{
typedef void (__stdcall *PROC)(void);
PROC Saludo=(PROC)GetProcAddress(LoadLibrary("Prueba.dll"),"Saludo");
Saludo();
}

DLLIMPORT void HelloWorld ()
{
typedef void (__stdcall *PROC)(void);
   doSaludo();
}


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:
        HelloWorld();

      case DLL_PROCESS_DETACH:
        break;

      case DLL_THREAD_ATTACH:
        break;

      case DLL_THREAD_DETACH:
        break;
    }

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