请教java通过JNative调用dll的问题,HWND参数如何创建。

问题描述

JNativen=null;n=demo.getJNativeByFunction("InitDLL");n.setRetVal(Type.INT);HWNDhwnd=newHWND(0);n.setParameter(0,hwnd.getValue());n.invoke();如此调用报错:-----------------------------------------------------------------------------------##AnunexpectederrorhasbeendetectedbyJavaRuntimeEnvironment:##EXCEPTION_ACCESS_VIOLATION(0xc0000005)atpc=0x10001717,pid=4884,tid=3356##JavaVM:JavaHotSpot(TM)ClientVM(11.0-b15mixedmode,sharingwindows-x86)#Problematicframe:#C[Canon.dll+0x1717]##Anerrorreportfilewithmoreinformationissavedas:#D:workSpacesnWork2CanonScanhs_err_pid4884.log##Ifyouwouldliketosubmitabugreport,pleasevisit:#http://java.sun.com/webapps/bugreport/crash.jsp#ThecrashhappenedoutsidetheJavaVirtualMachineinnativecode.#Seeproblematicframeforwheretoreportthebug.

时间: 2024-10-22 08:54:38

请教java通过JNative调用dll的问题,HWND参数如何创建。的相关文章

关于java中用JNative调用dll文件报错的问题,跪求大神解决

问题描述 我在Eclipse中新建一个java工程,在java文件中用JNative调用dll文件,我把JNativeCpp.dll放在的C:WindowsSystem32中,把JNative.jar放在C:ProgramFilesJavajre7libext中,可是运行的时候总是报错JNativelibrarynotloaded,sorry!求解决啊,弄了一下午了,快死人了,还没调出来! 解决方案 解决方案二:JNativeCpp.dll放在的C:Windows下试试

jnative 调用dll文件

问题描述 我在myEclipse工具中建了一个java类,里面写的是jnative调用dll文件,但不知道怎么老是错误!//源代码publicstaticvoidmain(String[]args)throwsNativeException,IllegalAccessException{System.loadLibrary("test");JNativejnative=newJNative("test","show");jnative.setRe

jnative-请问关于JNative调用dll,传入引用问题

问题描述 请问关于JNative调用dll,传入引用问题 请教各位达人,在下目前使用JNative调用一个第三方自定义的dll文件, 其中一个接口是需要传入REF指针来获取计算结果的,而且需要事先分配空间才可以. 请问这个过程如何操作,网上查过一些资料,都没有达到想要的效果,在此先谢过. 解决方案 http://chengzhi.iteye.com/blog/1073271 解决方案二: JNative调用dll打印

请教JNative 调用DLL的最佳方式

问题描述 最近做一个项目需要跟硬件打交道,而硬件开发商只提供了一个DLL对硬件进行操作,于是我就用JNative对DLL中定义的函数进行调用,目前已知的调用方法是JNative native = new JNative("DELL Name","methodName");其它的构造忽略,在这种情况下,已创建了一个JNative的实例,并且要调用的方法也已跟这个实例绑定了,也就是说这个native只能调用指定的methodName,要想调用DLL中其它方法,还得重新实

JNative调用dll参数设置问题

问题描述 在做java对sqlite加密过程中,选择了用JNative调用wxsqlite的sqlite3.dll来实现加密,其中用到了dll文件中的sqlite3_open,sqlite3_rekey,sqlite3_key,sqlite3.close函数.在C中,参数如下:intsqlite3_open(constchar*filename,/*Databasefilename(UTF-8)*/sqlite3**ppDb/*OUT:SQLitedbhandle*/)intsqlite3_re

java中如何调用DLL方法

前段时间项目需要使用调用DLL来控制POS机外设,如钱箱和小票打印机.顾客显示屏等,于是,我便开始了java调用DLL中的方法的探索,事实上,网上的例子还是很多的,一些外部包的例子也有很多,但每个人的实际情况都有所不同,尽管只是一个很简单的调用,也花了我不少时间,在这里分享一下我的经验吧. 我是通过一个外部的JAR包来间接来获得DLL文件的句柄 的,它就是jacob了,这是java com brige的简写,呵呵, 这个名称起得非常形象吧,我用的版本是jacob 1.9的,你可以到它的官方网站去

java jnative调用DLL 对于引用类型的值怎么取回

问题描述 使用如下myjnative=newJNative("xx.dll","某方法");myjnative.setRetVal(Type.VOID);intj=0;Stringresult=newString("");myjnative.setParameter(j++,Type.STRING,"xxxx");myjnative.setParameter(j++,Type.STRING,result);myjnative.

java使用JNA(Java Native Access)调用dll的方法_java

JNA(Java Native Access):建立在JNI之上的Java开源框架,SUN主导开发,用来调用C.C++代码,尤其是底层库文件(windows中叫dll文件,linux下是so[shared object]文件).JNI是Java调用原生函数的唯一机制,JNA就是建立在JNI之上,JNA简化了Java调用原生函数的过程.JNA提供了一个动态的C语言编写的转发器(实际上也是一个动态链接库,在Linux-i386中文件名是:libjnidispatch.so)可以自动实现Java与C之

java 用 jawin 调用 dll

问题描述 我要用java 调用jawin 读取 dll 来实现读取硬盘编号目的以下是原代码package com.ywda.util;import org.jawin.COMException;import org.jawin.FuncPtr;import org.jawin.ReturnFlags;public class nativeDll {public static void main(String[] args) throws Exception {int result1,result