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:
#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:
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!! :(
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.
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?¿
¿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/dabb5z75.aspx)
http://msdn.microsoft.com/en-us/library/3y1sfaz2.aspx (http://msdn.microsoft.com/en-us/library/3y1sfaz2.aspx)
Okey,tienes razon,ya esta solucionado :)
muxas gracias por todoo ^^