Red de conocimiento informático - Aprendizaje de programación - Error de JNA al llamar a la función C, JAVA puede cargar la biblioteca, pero no puede encontrar la función escrita en C

Error de JNA al llamar a la función C, JAVA puede cargar la biblioteca, pero no puede encontrar la función escrita en C

Llamar al código compilado en C puede llamar a la biblioteca, pero no se puede encontrar la función, supuestamente porque el compilador de C alteró el nombre de la función.

Hay dos formas de solucionar este problema:

Usar C externo, cuya función es compilar parte del código con el compilador de C, porque el compilador de C no cambiará la función. nombre de la función. Puede llamarlo en Java usando el nombre de la función de su código.

Usar plantilla def

Nota 1: debe verificar los métodos mencionados aquí usted mismo; los artículos de otras personas se escribirán con mayor claridad; lea el artículo completo para obtener más información.

Nota 2: Con respecto al impacto de los nombres de funciones en los compiladores de C y C en el compilador, aquí se explica cómo verificarlo: si desea ver el nombre del método de la DLL compilada por el compilador de C, puede utilizar dependencia inversa El compilador descompila el programa, arrastre el dll a la ventana del programa dependiente y el árbol de dependencia aparecerá a la izquierda. Haga clic en "library.dll" encima de usted y verá el nombre de la función. dll", puede ver el nombre de la función en el dll compilado en C a la derecha. Como se muestra a continuación:

1. DLL compilado con C:

2. Compilado con C DLL :