El uso de libs / DLL compilados en Linux / MinGW en Visual Studio
-
18-09-2019 - |
Pregunta
Actualización: Me esta advertencia al compilar: secciones múltiples '' .text encontraron con diferentes atributos
Hola,
He recopilado algunas bibliotecas (.a y .dll) en Linux utilizando el compilador MinGW Cruz. Puedo unir con éxito contra ellos (.a) en Visual Studio 2008. Sin embargo, cuando se ejecuta (usando .dll), que termina con el puntero que apunta en dirección de las direcciones de memoria vacías.
¿Hay una manera / una lista de cosas que hacer que se me permite utilizar esas bibliotecas con éxito en VC08?
El compilador cruzado genera
- *. Dll.a
- *. Dll
Gracias
Solución
Encontrados ella.
http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs
Hay que tener un archivo de definición y el uso de herramientas lib de la CV para generar una biblioteca de importación.
Otros consejos
Me suena igual que las dos partes no están utilizando la misma convención de llamada, es decir, hay un problema en la forma en que las funciones DLL exportadas se han definido.
Con mucho, el método más sencillo sería definir las funciones como extern "C" mediante la definición de las funciones exportadas de la siguiente manera:
extern "C"
{
int MyExportedFunction(char *buffer, int length);
void MyOtherFunction();
};