我现在有个工程需要用java调用dll接口,我需要传递参数给dll接口,我先声明一个指针Pointer pStr = new Pointer(MemoryBlockFactory.createMemoryBlock(1024*100000)); 然后放入数据,这个数据大概有4K,
pStr.setStringAt(0, str); 然后我再取出这个数据:                                           String str2 =  pStr.getAsString();
惊奇的发现 取回的数据 总会丢掉 原来数据的  最后 几个字节的数据, 比如 如果 str = "<?xml version=\"1.0\" encoding=\"gb2312\"?><ctx><Success>1</Success><tree></tree></ctx>";
 str2 可能就是"<?xml version=\"1.0\" encoding=\"gb2312\"?><ctx><Success>1</Success>, 为什么呢,不管我传多大的数据,总会丢掉后面的数据、哪位高手遇到过啊?很急!!!!!!!!!

解决方案 »

  1.   

    dll接口? 指针??有点晕是java吗
      

  2.   

    指针?   java没有指针
      

  3.   

    1024*100000你这么大的空间,用pStr.getAsString()时,方法是怎么判定一个字符串的结束的,这个应该查一下相关文档。
      

  4.   

    dll中的方法如何实现的?是否用任何字符串测试都有这样的问题?
      

  5.   

    dll中的方法我不知道 怎么实现的, 现在是我放进数据 再马上取出来 就已经不对了,还没开始调dll的借口呢, 但是我传一个 
    str = " <?xml version=\"1.0\" encoding=\"gb2312\"?> <ctx> <Success>1 </Success> <tree>11111111111111111111111122222222222222222222</tree> </ctx>";这样就又没问题!  怀疑是 中间的数据 有什么特殊的编码 我中间的数据是这样的:<t><r>fe_0/1/126_10433-fec_0/1/126_10433_613;Camera 05;I12</r><r>fe_0/1/126_10435-fec_0/1/126_10435_624;Camera 05;I12</r><r>fe_0/1/126_10435-fec_0/1/126_10435_629;Camera 06;I12</r><r>fe_0/1/126_10433-fec_0/1/126_10433_611;Camera 06;I12</r><r>fe_0/1/126_10433-fec_0/1/126_10433_619;Camera 07;I12</r><r>fe_0/1/126_10435-fec_0/1/126_10435_628;Camera 07;I12</r><r>fe_0/1/126_10433-fec_0/1/126_10433_621;Camera 08;I12</r><r>fe_0/1/126_10435-fec_0/1/126_10435_622;Camera 08;I12</r><r>fe_0/1/126_10433-fec_0/1/126_10433_610;Camera 09;I12</r><r>fe_0/1/126_10433-fec_0/1/126_10433_620;Camera 10;I12</r><r>fe_0/1/126_10433-fec_0/1/126_10433_616;Camera 11;I12</r><r>fe_0/1/126_10433-fec_0/1/126_10433_609;Camera 12;I12</r><r>fe_0/1/126_10433-fec_0/1/126_10433_618;Camera 13;I12</r><r>fe_0/1/126_10433-fec_0/1/126_10433_617;Camera 14;I12</r><r>fe_0/1/126_10433-fec_0/1/126_10433_612;Camera 15;I12</r><r></t>  这样的数据会有什么问题呢? 
      

  6.   

    解决了,使用 pStr.setMemory(str); 就可以了  之前的那个pStr.setStringAt(0, str);  遇到中文 就转换不了,str中有多少个中文 后面就会漏掉同样多的字符。