No me carga la DLL LoadLibrary

Iniciado por Riki_89D, 17 Septiembre 2011, 16:06 PM

0 Miembros y 1 Visitante están viendo este tema.

Riki_89D

Hola que tal,llevo un buen rato intentando cargar una funcion de una dll pero no me funciona,e googleado pero nada de nada nigun ejemplo me sirvio.


aqui les dejo el code:


DLL:

Código (cpp) [Seleccionar]

#include <windows.h>
#include <stdio.h>

BOOL APIENTRY DLLMain(HINSTANCE Inst,DWORD Razon,LPVOID Reserverd)
{
switch(Razon)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}

return TRUE;

}

int _stdcall escribe()
{
MessageBox(0,"Hola","",0);
return 0;
}




Exe:

Código (cpp) [Seleccionar]

typedef int * (__stdcall *Function)();

Function fn1;



HINSTANCE DllEntry = LoadLibrary("\\LoadKernel.dll");
if(DllEntry != NULL)
{
FreeLibrary(DllEntry);
MessageBox(0,"No se encuentra la DLL","Error",0);
      return 1;

}
else{
fn1 = (Function)GetProcAddress(DllEntry,"escribe");
int * ejecuta = fn1();
}




pero nada,no carga NADA!! :(

The Swash

Tratas de llamar a una función que jamás exportaste para uso externo.
Aquí hay un ejemplo claro:
http://www.infernodevelopment.com/simple-c-dll-loading-message-box

Un saludo.

Riki_89D

Hey que tal,ahora el compilador me agenerado un arhcivo .lib,se agregar los LIB como wininet y otros,pero el mio como lo agrego al proyecto para enlazar con la libbreria?¿

Queta

¿No querías hacer una librería dinámica (DLL)?

Lo que te dice The Swash es que tienes que declarar las funciones como exportables.

http://msdn.microsoft.com/en-us/library/dabb5z75.aspx
http://msdn.microsoft.com/en-us/library/3y1sfaz2.aspx
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

Riki_89D

Okey,tienes razon,ya esta solucionado :)


muxas gracias por todoo ^^