神呐 !!这是呐哩问题???
3.ReadSoftVer(int *VerCount; Byte *VerData)功能:读取发卡器版本号
参数:VerCount---返回控制器版本号位数
VerData---返回控制器版本号字符
返回值:0---成功
1-- 串口未连接
2---收取数据包头数据位数不成功
3---数据包头数据CRC校验错误
4---收取用户数据位数不成功
5---用户数据CRC校验错误
[DllImport("TDODLL30.dll", EntryPoint = "ReadSoftVer")]
private static extern int ReadSoftVer(ref int VerCount, ref byte[] VerData);
private void button3_Click(object sender, EventArgs e)
{
try
{
int count = 0;
byte[] bit = new byte[1967];
int icdev = ReadSoftVer(ref count, ref bit);
string str = Encoding.GetEncoding(0).GetString(bit);
if (icdev == 0)
{
listBox1.Items.Add("成功");
MessageBox.Show(str);
listBox1.Items.Add(bit);
}
else if (icdev == 1)
{
listBox1.Items.Add("串口未连接");
}
else if (icdev == 2)
{
listBox1.Items.Add("收取数据包头数据位数不成功");
}
else if (icdev == 3)
{
listBox1.Items.Add("数据包头数据CRC校验错误");
}
else if (icdev == 4)
{
listBox1.Items.Add("收取用户数据位数不成功");
}
else if (icdev == 5)
{
listBox1.Items.Add("用户数据CRC校验错误");
}
}
catch
{
}
int icdev = ReadSoftVer(ref count, ref bit); ---这句出错了
。。。
运行库遇到了错误。此错误的地址为 0x79e7c5eb,在线程 0xd44 上。错误代码为 0xc0000005。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。
--------------------编程问答-------------------- 你的结贴率也太低了吧 --------------------编程问答--------------------
没分结不了,
水平太低也得不到分
,
----------只为学习
--------------------编程问答-------------------- --------------------编程问答--------------------
大哥你别晕啊
帮忙想想 --------------------编程问答-------------------- 传说有些dll调试的时候会出错,但是到发布的正式版就不会错,楼主可以试试! --------------------编程问答--------------------
。。。
发布???正式版??
--------------------编程问答-------------------- [DllImport("TDODLL30.dll", EntryPoint = "ReadSoftVer")]
private static extern int ReadSoftVer(ref int VerCount, ref byte VerData);
byte[] bit = new byte[1967];
int icdev = ReadSoftVer(ref count, ref bit[0]);
--------------------编程问答-------------------- 这结贴率比0都难看 --------------------编程问答-------------------- --------------------编程问答-------------------- 你试下改为int count = 1967;
不清楚你的接口,我猜想传入时那个count也许是有意义的。 --------------------编程问答--------------------
错误 2 参数“2”: 无法从“ref byte”转换为“ref byte[]” d:\我的文档\Visual Studio 2005\Projects\bbbbb\bbbbb\Form1.cs 91 56 bbbbb
--------------------编程问答-------------------- private static extern int ReadSoftVer(ref int VerCount, ref byte VerData);
这里也要改,参数改过之后还是报错,可能要把C++动态库也添加到项目中来,之前遇到过这样的问题. --------------------编程问答--------------------
还是 不行
错误 1 与“bbbbb.Form1.ReadSoftVer(ref int, ref byte)”最匹配的重载方法具有一些无效参数 d:\我的文档\Visual Studio 2005\Projects\bbbbb\bbbbb\Form1.cs 91 29 bbbbb
错误 2 参数“2”: 无法从“ref byte[]”转换为“ref byte” d:\我的文档\Visual Studio 2005\Projects\bbbbb\bbbbb\Form1.cs 91 56 bbbbb
--------------------编程问答-------------------- 123
补充:.NET技术 , C#