vc的函数说明
typedef struct IdcInfo {
char name[30+1]; //
char sex[1+1]; //
char nation[2+1]; //
char birth[8+1]; //
char addr[70+1];
char pid[18+1];
char issue[30+1]; //
char valid_start[8+1]; //
char valid_end[8+1];   //
} TIdcInfo;STDAPI ReadIdcInfo(int ReaderHandle, TIdcInfo *pIdcInfo)
请问在c#中如何声明,我写了声明:         public struct IdcInfo
        {
            public string name;
            public string sex;
            public string nation;
            public string birth;
            public string addr;
            public string pid;
            public string issue;
            public string valid_start;
            public string valid_end;
        }
        [DllImport("iccdll.dll")]
        private static extern int ReadIdcInfo(int handle, ref IdcInfo icdinfo);
调用:
IdcInfo idc = new IdcInfo();
      idc.name = new StringBuilder(31).ToString();
                idc.sex = new StringBuilder(2).ToString();
                idc.nation = new StringBuilder(3).ToString();
                idc.birth = new StringBuilder(9).ToString();
                idc.addr = new StringBuilder(71).ToString();
                idc.pid = new StringBuilder(19).ToString();
                idc.issue = new StringBuilder(31).ToString();
                idc.valid_start = new StringBuilder(9).ToString();
                idc.valid_end = new StringBuilder(9).ToString();ReadIdcInfo(handle, ref idc);
执行到ReadIdcInfo会报错“发生应用程序无法处理的异常”云云