| 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... |
| |
|
|
|