En el mundo de Microsoft, __declspec(dllexport)
hace que una función o clase se llame desde fuera de la DLL.
Cuando crea una DLL, de forma predeterminada, cualquier función definida en la DLL solo se puede llamar desde la misma DLL. No puede llamar a esa función desde un archivo ejecutable o una DLL diferente.
Si desea que se llame a su función desde fuera de la DLL, debe exportarla agregando __declspec(dllexport)
.
Una manera de pensarlo es que __declspec(dllexport)
es una función que forma parte de la interfaz pública de una DLL.
Si bien no preguntó por __declspec(dllimport)
que es todo lo contrario. Al invocar una función en una DLL diferente, su DLL necesita saber que es parte de una interfaz pública de DLL diferente para que pueda manejar la llamada correctamente (llamar a una función en una DLL diferente requiere un código más complejo que llame a una función en usted).
@deepak: ¡Bienvenido a 'StackOverflow'! He formateado tu código (selecciónalo y presiona Ctrl + K). –