[C++] ¿Como comunicar DLLs?

Iniciado por RayHack, 8 Abril 2014, 01:55 AM

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

RayHack

Buenas amigos hoy os vengo con una pequeña duda la cual quisiera me den una ayudita.

Bueno estoy tratando de pasar una variable tipo "char" de una DLL a otra DLL utilizando dllimport y dllexport pero no funciona ya que al importarlo a la DLL no contiene valor.

__declspec(dllexport) char *variable;

variable = "Hola";


Y en la DLL en la cual quiero utilizar el contenido de la variable utilizo:

__declspec(dllimport) char *variable;

No se que hago mal pero no se importa o exporta correctamente, todo compila perfecto al momento de vincular el .lib pero no la importacion no sirve.

¿Hay algún otro metodo o como podria hacerlo correctamente?

Un saludo y muchas gracias de antemano.

x64core

Y la manera en la que estas intentando acceder a la variable?

RayHack

Lo utilizo de la siguiente manera.

__declspec(dllimport) char *variable;
printf("%s", variable);


Un saludo.

x64core

#3
Cita de: RayHack en 10 Abril 2014, 04:54 AM
Lo utilizo de la siguiente manera.

__declspec(dllimport) char *variable;
printf("%s", variable);


Un saludo.
Decis que estas importando la variable de una DLL a otra , lo que tienes que hacer es obtener su dirección ya sea 'manualmente'
parseando la imagen o usando estas funciones:

VarDireccion = GetProcAddress(GetModuleHandle("Nombre_De_La_DLL"),"Nombre_De_La_Variable")

Agregado:

Si se hace directamente importando la funcion entonces simplemente la direccion deberia estar en la IAT/Import Directory