【急急急】JNI调用C++dll获取硬盘信息,【只有】在命令提示符下调用才成功返回硬盘信息(返回自定义常量没有问题)
RT
操作系统:WIN8
JDK 1.6和1.5均尝试过了。
是一个获取硬盘信息的dll,vc++6.0编写。
文件结构:
getdiskinfo.dll [获取硬盘信息,返回一个硬盘信息的结构]
Diskinfo.java [native方法类,内有Main函数,及对应C++中的结构信息]
TestGet.java [Main方法调用Diskinfo.jar来获取]
1.控制台运行Diskinfo.class成功获取。
2.控制台运行TestGet.class调用Diskinfo.jar成功获取。
3.于是拿到MyEclipse 8.5中测试,调用调试。然后就杯具了,资料查了N多,程序也试N多遍
4.然后在MyEclipse中用Main函数测试返回值依然为空[char*转为jstring的返回值全部为空,DWORD转为char*然后再转为jstring的返回值全部为0]。
5.另加个方法在MyEclipse测试传入“123”然后再把传入的值返回回来,这样却能成功传出。
不知道是不是:能够获取到硬盘信息,但在工程中调用时,传递或者转换类型的过程中返回值变没了?
但是命令提示符(非管理员权限也可以)调用就没有问题
有没有哪位遇到上面的问题?怎么解决的?
jdk试过自己装的1.6,myeclipse带的1.6,1.5,都是一样的空值。
工作空间也换过了,依然没用。
求大家帮帮忙,
------解决方案--------------------
那先随便写个接口,调用dll的接口方法,随便返回简单类型的看看,然后再使用复杂类型数据看看
------解决方案--------------------右键 myeclipse.exe,属性, 以管理员的权限执行的钩选上,再试试呢。