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

时间:2013-06-04 21:08:03

标签: java jna

我想使用JNA将包含xml文件内容的String传递给本机函数。但不知怎的,它给了我一些问题。程序进入无限循环并且不会终止。当我尝试通过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);
}

程序进入无限循环,永远不会终止。 DLL使用递归函数来解析输入xml字符串,我认为这就是问题所在。 (我正在使用第三方DLL无法访问代码。)但是当通过C访问相同的dll时,函数processValues()会成功执行。(具有相同的输入参数)我的问题是

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

提前致谢。

0 个答案:

没有答案