帮我瞧瞧 为什么调用c++的dll文件的struct结构里的值才一个
c++
struct stuStudentInfoA
{
CHAR strZKZH[13]; //准考证号
CHAR strSFZMHM[20];//身份证明号码
CHAR strXM[32]; //姓名
CHAR strXB[3]; //姓别
CHAR strKSCX[3]; //考试车型
CHAR strYKRQ[16]; //约考日期
};
int __stdcall ReadStudentInfoA(int nKSNR,LPCSTR strZJHM,int nType,stuStudentInfoA *lpInfo,BOOL bFirstXMofLK=FALSE);
c# 任务:根据身份证号, 比如“140122199001011234”获取 学员的基本信息(c++反馈的信息)
[StructLayout(LayoutKind.Sequential,Pack = 1)]
public struct stuStudentInfoA
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string strZKZH; //准考证号
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string strSFZMHM;//身份证明号码
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string strXM; //姓名
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string strXB; //姓别
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string strKSCX; //考试车型
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string strYKRQ; //约考日期
}
class
{
[DllImport("link.dll",CharSet=CharSet.Ansi)]
public static extern int ReadStudentInfoA(int nKSNR, System.String strZJHM, int nType, ref stuStudentInfoA lpInfo, System.Boolean bFirstXMofLK);
stuStudentInfoA ipinfo=new stuStudentInfoA();
int result=ReadStudentInfoA(1, "140122199001011234", 1, ref ipinfo, false)
string str_ZKZH =ipinfo.strZKZH;//就这一个反馈可以
string str_SFZMHM=ipinfo.strSFZMHM;//都不行了
...
}