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会报错“发生应用程序无法处理的异常”云云
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会报错“发生应用程序无法处理的异常”云云
public string name;
public string name;后面的以此类推吧