Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SuperNovato en 31 Diciembre 2010, 18:51 pm



Título: una ayuda : cargar una dll y usar sus funciones.
Publicado por: SuperNovato en 31 Diciembre 2010, 18:51 pm
una ayuda acerca de cargar una dll y usar sus funciones
tengo este code del .exe en c++

Código:
#include <windows.h>

typedef void(*PF)();

int main()
{
HINSTANCE hDll = LoadLibrary("c:\\carga.dll"); // carga la dll
PF Mensaje = (PF)GetProcAddress(hDll, "inicio"); //obtiene el puntero
Mensaje(); // ejecuta la funcion
FreeLibrary(hDll);
return 0;
}




y este es el code de la dll, q esta hecha en vb6 y exportada :


Código:
Option Explicit
 
 Public Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long

Public Function inicio()
    MessageBox 0, "me han ejecutado", "holas", 64
    inicio = 1
End Function


el .exe carga la dll y sale el mensaje, pero despues de aceptar el mensaje me sale el error : "la memoria 0x0... hace referencia a 0x0......, no se puede read",  ¿como podria solucionarlo?,  voi a hacer unas dll en vb6 pero se presenta este problema y no se como solucionarlo.


Título: Re: una ayuda : cargar una dll y usar sus funciones.
Publicado por: Oblivi0n en 31 Diciembre 2010, 21:23 pm
Porque haces lo de
Código:
typedef void(*PF)();

no lo entiendo  :huh:


Título: Re: una ayuda : cargar una dll y usar sus funciones.
Publicado por: SuperNovato en 31 Diciembre 2010, 22:39 pm
el code lo vi en otro foro : http://www.forosdelweb.com/f14/otra-librerias-dll-370583/
recien estoy aprediendo  c++.
esto vendria a ser una practica.
.¿cual podrá ser el error?


Título: Re: una ayuda : cargar una dll y usar sus funciones.
Publicado por: Eternal Idol en 1 Enero 2011, 14:57 pm
VB exporta las funciones con la convencion de llamada stdcall:

Código
  1. typedef void(__stdcall *PF)();