现在在尝试用JAVA调用DLL文件打印,在调用kernel32.dll 的WriteFile方法时,没办法传参。各位有什么办法吗?
或者有其它的方法实现打印LABEL。说说有什么思路,最好是能有实现代码。
|
一般来说条码打印机都有自己专门的DLL接口文件,不需要调用系统的Dll。
如果是支持接口开发,肯定会有DLL的说明文档。那么按照文档调用DLL的方法就可以了。不同的打印机接口方法不一样,所以没有现成的代码。 java 和 DLL 交互的话可以使用 JNative 包,比较方便。 首先 System.loadLibrary(dllName); public Integer executeFunction(String dllName ,String functionName,Object[] params){ try { JNative func = new JNative(dllName, functionName); func.setRetVal(Type.INT); for(int i=0;i<params.length;i++){ if(params[i] instanceof String) func.setParameter(i, (String)params[i]); else if(params[i] instanceof Integer) func.setParameter(i, ((Integer)params[i]).intValue()); else if(params[i] instanceof Pointer) func.setParameter(i, (Pointer)params[i]); else if(params[i] instanceof Boolean) func.setParameter(i,Type.INT, params[i].toString()); else if(params[i] instanceof byte[]) func.setParameter(i, Type.PSTRUCT,(byte[])params[i]); } func.invoke(); return func.getRetValAsInt(); } catch (Exception e) { throw new RuntimeException(e); } } 调用的时候传dll名,函数名,和接口参数,详细的可以去了解一下。 |
|
举报
2010-10-20 05:34
石家庄泵业网,以泵阀行业为主题的专业网站。我在那买过,东西质量挺好,服务质量也好。
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快! vaela |