El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de C++/C#
Foros del Guru > C++/C#
Usuario linkado explicito de no-MFC dlls
Desconocido
Enviado - 29/11/2004
 
¿No tendria que funcionar este codigo?
¿Donde esta el error?. Se ejecuta bien hasta que llama a hola()

//archivo libreria1.cpp (dll)/////////////////////

__declspec(dllexport) void __stdcall hola();

void __stdcall hola(){
;}

//archivo main.cpp (exe)//////////////////////

#include <iostream.h>
#include <windows.h>


HINSTANCE hDll = 0;

typedef void (__stdcall *hola_type) ();

hola_type hola=0;



void DLLInit()
{
hDll = LoadLibrary("libreria1.dll");
if (hDll!=NULL){cout << "Linkado correcto..."<<endl;}
else{cout << "Imposible linkado dinamico explicito..."<<endl;FreeLibrary(hDll);}
}

void DLLFree()
{
FreeLibrary(hDll);
}

int main()
{
DLLInit();



hola = (hola_type)GetProcAddress(hDll, "hola");

if (!hola){
cout << "puntero a funcion externa correcto..."<<endl;
hola();
}
else{
cout << "no se encuentran funciones externas con ese nombre..."<<endl;}


DLLFree();
return 0;
}
// ----------------------------------------------

Utilizo VC6
¿De que otra forma puedo cargar una no_MFC dll en tiempo de ejecucion?
O si no, ¿se puede hacer algo parecido sin usar dll o estas cosas que a mi me parecen tan raras?
¿Tiene c/c++ librerias propias para hacer esto?
El problema es que mi programa no sabra hasta mitad de la ejecucion el nombre de la libreria a cargar.
Muchas gracias de parte de un nuevo, inexperto y ya casi desesperado programador.
Saludos
 
Desconocido
Enviado - 30/11/2004
 
hay varios errores. El primero está en main.cpp: if (!hola) .... no hace lo deseado. Hay que quitarlo...
libreria.dll: no se hace asi. Faltan varias cosas. Visiten www.dcp.com.ar/otros.htm y bajense convierte.zip de su paisano Demian Panello...
 
 

 

Contactos myStudio Network