调用DLL的函数,回传参数是一个struct,见下,其中位数是定长的,char的处理没问题,unsigned int  我问过提供者了,说是4个字节的,可我在C#里用int 就是不行,哪位知道应该用什么?还有unsigned short和short类型,提供者说是2位的.我现在必须要正确,否则错一位,后面全是乱的.我本来想了一个折中的办法,用string类型代替int ,因为string可以通过[MarshalAs(UnmanagedType.ByValTStr, SizeConst=21)]定制长度,这样char的数据都可读出来,可是那些用string代替int的就是乱码了,有谁能处理的话也行!
typedef struct{      char                      Name[21];                         /*姓名*/       char                      SexNo[2];                          /*性别*/       char                      DeptCode[19];                   /*部门代码*/       unsigned int           CardNo;                            /*卡号*/       unsigned int           AccountNo;                       /*帐号*/       char                      StudentCode[21];               /*学号*/       char                      IDCard[21];                       /*身份证号*/       char                      PID[3];                              /*身份代码*/       char                      IDNo[13];                          /*身份序号*/       int                         Balance;                             /*现余额*/       char                      Password[7];                      /*消费密码*/       char                      ExpireDate[7];                    /*账户截止日期*/       unsigned short       SubSeq;                             /*补助戳*/       char                      IsOpenInSys;                     /*是否在本系统内开通*/       short                     RetCode;                           /*后台处理返回值*/
     
 } Accout;