none
C# 调用C/C++ RRS feed

  • 问题

  • C/C++  

     DWORD _stdcall GetSerialNum
    (
    IN HANDLE hCard,  
    OUT BYTE bSerial[NUMLEN]  
    );

    Byte的定义是typedef unsigned char BYTE;

    我写的:
      [DllImport("HS.dll", EntryPoint = "GetSerialNum")]
      public static extern uint GetSerialNum([In]uint handl, [MarshalAs(UnmanagedType.LPArray)] byte[] data);

    调用方法:
      byte[] array= new byte[255];
      Common.GetSerialNum(KeyHandle, array);

    返回来的array 我用Encoding.Default.GetString(array)转换,拿到的是乱码

    我想就是我传参数的问题了,OUT BYTE bSerial[NUMLEN]   

    这应该传什么呢。
    • 已编辑 包 子 2012年7月10日 3:13
    2012年7月10日 3:12

答案

全部回复