Ver Mensaje Individual
  #16 (permalink)  
Antiguo 16/05/2006, 15:44
Nivel7
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 6 meses
Puntos: 2
#ifdef WIN32
#define FXLOCAL
#define FXEXPORT __declspec(dllexport)
#define FXIMPORT __declspec(dllimport)
#else
#if defined(__GNUC__) && (__GNUC__ >= 4)
#define FXLOCAL __attribute__ ((visibility("hidden")))
#define FXEXPORT __attribute__ ((visibility("default")))
#define FXIMPORT
#endif

Esto es para definir macros de importacion ya sea Windows o Linux.

Como se hace en Linux, la verdad no lo sé, en windows hay diferentes formas.

Implicitamente o modo de carga estatica, es decir tu creas tu Dll, y ademas de crearse una Dll, se crea un fichero .a o .lib, este se usara como una libreria estatica a la hora de crear tu ejecutable que use esta libreria Dll.

explicitamente es usando la funcion LoadLibrary y GetProcAddress.
NO estoy del todo seguro si este metodo requiere de archivos .DEF

la verdad las pocas veces que he usado Dlls, lo he hecho implicitamente es decir con __declspec(dllimport) o __declspec(dllexport).
lo he intentado en otras ocasiones con LoadLibrey pero nunca me funciona.

La regla es que una vez que modificas la Dll, tienes que recompilar el ejecutable pero no siempre es asi. (SI compilas con el mismo compilador, puedes modificarla sin que eso implique recompilar tu ejecutable (Siempre y cuando las funciones que usa tu ejecutable mantengan su nombre, tipo y parametros igual)).


Se que no ayuda en mucho esta informacion pero queria comentarte eso.

Saludos.