java调用dll怎么处理指针参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java调用dll怎么处理指针参数相关的知识,希望对你有一定的参考价值。
//Thisisthestandard,stablewayofmapping,whichsupportsextensive//customizationandmappingofJavatonativetypes.publicinterfaceCLibraryextendsLibraryCLibraryINSTANCE=(CLibrary)Native.loadLibrary("TestDLL.dll",CLibrary.class);//函数声明byte[]和String都试过,都不行,改变不了传递进去的字符串intgetXMLResult(byte[]result);/***@paramargs*/publicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstubSystem.out.println("begin");//WStrings=newWString("Hello,World");//System.out.println("s="+s.toString());byte[]c='a','a','a','a';System.out.println("c="+Native.toString(c));//ByteByReference[]iref=newByteByReference[4];inti=CLibrary.INSTANCE.getXMLResult(c);System.out.println("i="+i);System.out.println("c="+Native.toString(c));//System.out.println("s="+s.toString());System.out.println("end");Java中byte[]c初始化,调用DLL中函数,但byte[]c的值没有被修改。===============================================================现在知道用Memory来处理指针的问题,调用C的函数声明修改如下: 参考技术A 使用相应的类型的数组~
以上是关于java调用dll怎么处理指针参数的主要内容,如果未能解决你的问题,请参考以下文章