Java 将xml文件的内容作为字符串传递给本机函数时出现问题

Java 将xml文件的内容作为字符串传递给本机函数时出现问题,java,jna,Java,Jna,我想使用JNA将包含xml文件内容的字符串传递给本机函数,但不知怎的,它给了我一些问题。程序进入无限循环,不会终止。当我试图通过C访问DLL时,同样的事情也在起作用 这就是我的代码的样子- Native side -- Class ABC{ ... long t = processValues(const * str1 ,char** output); ...} JNA interface looks llke this -

我想使用JNA将包含xml文件内容的字符串传递给本机函数,但不知怎的,它给了我一些问题。程序进入无限循环,不会终止。当我试图通过C访问DLL时,同样的事情也在起作用

这就是我的代码的样子-

Native side --  
        Class ABC{
        ...
        long t = processValues(const * str1 ,char** output); 
        ...}

JNA interface looks llke this - 
  public interface Add extends Library
 {
        Add INSTANCE = (Add) Native.loadLibrary("add", Add.class);
        ...
        NativeLong processValues(String str1,PointerByReference output);

        ...}

main method in java class is as follows -
public static void main(String  args[]){
Add lib = Add.INSTANCE;
        PointerByReference ptrRef = new PointerByReference();
String strBuffer = "<?xml version= \"1.0\"  ?><NRECORD> <SUBRECORD><ITEM1> <NAME> pqr</NAME> <MDATE>10/12/2012</MDATE><ENGINEER>TMAY</ENGINEER></ITEM1></SUBRECORD></NRECORD> "
Nativelong p = lib.processValues(strBuffer,ptrRef);
}
本机端--
ABC班{
...
长t=进程值(常量*str1,字符**输出);
...}
JNA接口看起来像这样-
公共接口添加扩展库
{
Add INSTANCE=(Add)Native.loadLibrary(“Add”,Add.class);
...
NativeLong进程值(字符串str1,指针引用输出);
...}
java类中的主要方法如下-
公共静态void main(字符串参数[]){
Add lib=Add.INSTANCE;
PointerByReference ptrRef=新的PointerByReference();
字符串strBuffer=“pqr 10/12/2012年5月”
Nativelong p=lib.processValues(strBuffer,ptrRef);
}
程序进入无限循环,永远不会终止。DLL使用递归函数解析输入xml字符串,我认为这就是问题所在。(我使用的是第三方dll,所以无法访问代码。)但当通过C访问同一dll时,函数processValues()会成功执行。(使用相同的输入参数)我的问题是

这是将xml内容作为字符串传递的正确方法吗? 是否有任何方法可以获取事件日志以及如何调用dll函数


提前谢谢。

您是否真的编译并运行了发布的代码?@technomage-这是与我正在开发的非常类似的示例代码。我已经编译并运行了我的程序。您可能想编辑您的问题,因为您的函数声明与其调用不匹配,你的问题也没有指出你在哪里遇到困难。