请各位大侠指教:
FuncPtr.invoke(java.lang.String instructions, int stackSize, NakedByteStream argStream, java.lang.Object[] objectArgs, ReturnFlags flags) 方法中第一个参数的详解其他参数已弄明白了,就这个只懂了一点点,不是很彻底,大侠们都来说说啊

解决方案 »

  1.   

    指令字符串。一个"XXX:Y:ZZZ"格式的字符串。其含义分别是传入参数中的每个字节的数据类型意义、返回值的类型、需要从传入指针中读取的数据(inout类型参数)。比如: 函数签名int func(int, int, struct s*, char*); 
    //其中struct s*调用完函数后需要读出,struct s所占字节数为16。 其指令字符串为:IIP16G:I:L4L4n16L4。该字符串在解析返回值(字节数组)时,首先应该是返回类型I对应的4个字节,然后是inout类型的参数中n16对应的16个字节。 其中字符串的意义可以在Jawin提供的文件instructions.h中找到,或者在官方文档(Jawin数据指令)中找到常用的一些指令字符串的意义。 
      

  2.   

    byte[] invoke(java.lang.String instructions, int stackSize, int argStreamSize, byte[] argStream, java.lang.Object[] objectArgs, ReturnFlags flags) 
    调用那些不匹配invoke_*调用方法的本地方法 ,就知道那么多。
      

  3.   

    第一个参数的意义就是,一个字符串,告诉jawin库函数,我们调用系统函数中几个参数,参数类型,以及函数返回值情况。