public static bool GetRand1_Pwd11(int Flag, char PutDiv, char OutRand, char OutEndata, bool Netencryption)
{
if (!Netencryption)
{
char[] RandAndEndData = new Char[50];
int intConnectOK = clsSJJ1009forformalchip.Meter_Formal_IdentityAuthentication(Flag, PutDiv, OutRand, OutEndata);
CheckSMResult(intConnectOK);
OutRand = new Char[RandAndEndData.ToString().Substring(0,16)]; //报错,目的是取RandAndEndData的前16位
//RandAndEndData.CopyTo(0, OutRand, 0, 16);
OutEndata = new Char[RandAndEndData.ToString().Substring(16, 16)]; //报错,目的是取RandAndEndData的16- 32位
}
else
{
OutRand = new Char[16]; //报错,目的是取新的字符串16位
OutEndata = new Char[16]; //报错,目的是取新的字符串16位
CheckSMResult(clsSJJ1009forformalchip.Meter_Formal_IdentityAuthentication(Flag, PutDiv, OutRand, OutEndata));
}
return true;
}
注意一下数据类型,不能乱赋值啊
这个即使换成char[ ],也不对.
Substring取出来的也是string,不是char[ ],你得先赋值给string型的变量,然后再转换成char[ ]
public static bool GetRand1_Pwd11(int Flag, char PutDiv, char[] OutRand, char[] OutEndata, bool Netencryption) {
if (!Netencryption)
{
char[] RandAndEndData = new Char[50];
int intConnectOK = clsSJJ1009forformalchip.Meter_Formal_IdentityAuthentication(Flag, PutDiv, OutRand, OutEndata);
CheckSMResult(intConnectOK);
OutRand = RandAndEndData.ToString().Substring(0,16).ToCharArray();//报错,目的是取RandAndEndData的前16位
//RandAndEndData.CopyTo(0, OutRand, 0, 16);
OutEndata = RandAndEndData.ToString().Substring(16,16).ToCharArray(); //报错,目的是取RandAndEndData的16-32位
}
else
{
OutRand = new Char[16]; //报错,目的是取新的字符串16位
OutEndata = new Char[16]; //报错,目的是取新的字符串16位
CheckSMResult(clsSJJ1009forformalchip.Meter_Formal_IdentityAuthentication(Flag, PutDiv, OutRand, OutEndata));
}
return true;
}
这边因为是要调用外部链接DLL文件的函数,所以不能更改,请问下针对几个报错的地方能帮忙看看如何修改吗
调DLL,函数应该是写好的,你怎么还可以改代码?
基础知识需要恶补了