Function show not found,这种情况一般有两种原因:
1. 找不到dll
解决办法:将dll放到system32下面,该目录是windows查找dll的目录,一般情况下是可以的,如果不行,或者用 System.out.println(System.getProperty("java.library.path"))打印出classpath,将dll放到classpath下, 然后用System.loadlibrary("xxx.dll")加载。
2.dll在,函数名称不对
看LZ的代码,这个dll好像是自己写的,如果对c++不熟悉的话,可能会造成错误,因为c++对函数进行优化时,可能会更改函数名字,比如你的"show"函数会被优化成__show@adfa,所以你在jnative中找不到show了。
解决办法:用一个查看dll的工具,直接打开dll查看dll函数是否成功导出,以及被优化后的函数名是什么。然后再jnative中使用被优化后的函数名。或者在函数前面加上 extern "C",强制编译器使用c的方式编译,不对函数名进行优化。如果还不行,试试更改_cdecl __stdcal。