各位大侠,我在用jnative调用dll时,碰到一个问题,dll中一个函数如下
func(const SIPX_INST hInst, const int index,const char*& szDevice) ;
第三个参数是char*& szDevice,是一个指针的引用,我在jnative端先new 了一个Pointer传到了这个方法里,在获得szdevice时,中文显示了乱码,不知哪位大仙遇到过此类问题。
                                                 
                                                  

解决方案 »

  1.   

    我正在弄JNA调用指针函数的问题,请问你怎么用的,能否贴出JNA程序来?关注中
      

  2.   

    搞定了,现在把结果弄出来吧,其实很简单,开始没有认真看JNA的官网说明
    http://www.360doc.com/content/10/0405/14/1140236_21681987.shtml我用的是PointerByReference去替代的Pointer
    (我在jnative端先new 了一个Pointer传到了这个方法里.//我的JNA无法实现new Pointer();不知道你怎么实现的)
      

  3.   

    private Pointer createIntPointer() {
    try {
    return new Pointer(MemoryBlockFactory.createMemoryBlock(4));
    } catch (NativeException e) {
    e.printStackTrace();
    }
    return null;
    }
        用这个函数来创建新的指针
      

  4.   


    上边是用jnative创建的pointer,我没用JNA,你的意思是JNA和Jnative一起用么,用Jnative创建指针后,传到JNA的PointerByReference,比如PointerByReference pp = new PointerByReference(pointer);这样jnative的pointer怎么转换成JNA的pointer呢