日期:2014-05-20  浏览次数:20686 次

Pointer 分配内存的 问题 很严重
我现在有个工程需要用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>, 为什么呢,不管我传多大的数据,总会丢掉后面的数据、

哪位高手遇到过啊?很急!!!!!!!!!


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