2012-02-27 13 views
11

¿Hay una manera de exportar sólo una función de DLL cos en tutoriales siempre clases de exportación con algo como:exportación funcione a DLL sin clases

static __declspec(dllexport) double Add(double a, double b); 

Dentro de una clase de la declaración anterior no causa ningún problema, pero sin una clase da:

dllexport/dllimport requires external linkage 

Respuesta

14

El problema es el calificador "estático". Debes eliminarlo porque significa lo incorrecto en este contexto. Intenta simplemente:

__declspec(dllexport) double Add(double a, double b); 

Eso es lo que necesita tener en su archivo de cabecera al compilar el archivo DLL. Ahora, para acceder a la función de un programa que utiliza el archivo DLL, es necesario tener un archivo de cabecera con esto:

double Add(double a, double b); 

Usted puede utilizar el mismo archivo de cabeceratanto para fines si utiliza #ifdefs:

#ifndef MYDLL_EXPORT 
    #define MYDLL_EXPORT 
#endif 

MYDLL_EXPORT double Add(double a, double b); 
Cuestiones relacionadas