我需要问JAWIN invoke方法里面的指令字符串问题,我搞了很久也没明白A,P,G等等那些字母代表什么意思,不过没关系,我把C++的函数原型给出来就是了。
  DLLEXPORT int _stdcall  dev_oper(char* dev, char* cmd);
  DLLEXPORT int _stdcall  init_dev(char* dev)问JAVA里面invoke(...., 12, nbs, null,ReturnFlags.CHECK_HRESULT)方法第一个参数该怎么填?

解决方案 »

  1.   

    Object invoke(Object proxy, Method method, Object[] args) Object proxy,第一个参数
    proxy对象的参数,在proxy调用某个目标对象的方法时,可能会采用回调机制调用InvocationHandler的invoke(Object proxy, Method method, Object[] args)方法,这个时候proxy对象则成为形式参数
      

  2.   

    给你举个例子,你就知道了A   a   =   new   A(); 
    Class   c   =   Class.forName( "A "); 
    Method   method   =   c.getMethod( "setName ",   new   Class[]{String.class}); 
    从Class   c中找到名为setName,带一个String参数的方法
    method.invoke(a,   new   Object[]{ "name "}); 
    调用对象a的该方法,参数是name字符串
      

  3.   

    第一个参数是DLL方法中参数的描述,每个参数冒号(:)分隔。code use
    "A" [out] long* parameters
    "G" passing in Unicode strings
    "I" [in] long parameters
    "k" skipping past input params that take 0 default in Win32 APIs
    "L" skipping unused arguments, going back to pick up arg
    "P" passing in structs, arrays
    "r" arrays of complex types