Escribo un código JNI en C++ para llamar desde un applet en Windows XP. Pude ejecutar con éxito el applet y cargar y ejecutar la biblioteca JNI, llegando incluso a llamar funciones en otros archivos DLL. Esto funcionó configurando la variable de entorno del sistema PATH para incluir el directorio en el que están todas mis DLL.UnsatisfiedLinkError: no se pudo encontrar el procedimiento especificado
Entonces, el problema es que agrego otra llamada que usa una nueva DLL externa y de repente cuando cargo el biblioteca, se genera un UnsatisfiedLinkError. El mensaje es: 'No se pudo encontrar el procedimiento especificado'. Esto no parece ser un problema con una DLL dependiente faltante, porque puedo eliminar una DLL dependiente y obtener un mensaje diferente sobre DLL dependiente faltante. De lo que he podido encontrar en línea, parece que este mensaje significa que falta una implementación nativa de la función Java de la DLL, pero es extraño que funcione bien sin este bit de código adicional.
¿Alguien sabe lo que podría estar causando esto? ¿Qué tipos de cosas pueden dar un mensaje 'No se pudo encontrar el procedimiento especificado' para un UnsatisifedLinkError?
Tuve este problema. libA extrajo libBv2 y libC. Se encontraron tanto libBv2 como libC. El problema era que libC dependía de una versión diferente, libBv1. libBv1 y libBv2 no funcionaron juntos. El cazador de dependencias mostró las bibliotecas, pero no amplié las dependencias de libC. Usé procmon (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx) para ver las bibliotecas cargadas y fue cuando noté que se cargaba la segunda versión de libB. – codeDr