怎么解决的   [email protected]

解决方案 »

  1.   

    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。这样应该就可以了。
      

  2.   

    看看你系统system32下边有没有个和它同名的dll
    我也是遇到过同样的问题 原因就是上面这个