【发布时间】:2015-12-09 00:10:05
【问题描述】:
我在 C# winforms 应用程序中列出所有 USB 应用程序,并尝试使用脚踏板播放音频。
我收到以下错误。
“System.ArgumentException”类型的未处理异常发生在 mscorlib.dll
附加信息:目标数组不够长,无法复制 集合中的所有项目。检查数组索引和长度。
private void ReadProcess(HidReport report)
{
byte[] message = report.Data;
uint _message;
Array.Reverse(message);
_message = BitConverter.ToUInt32(message, 0); // exception here!
....
【问题讨论】:
-
在抛出此异常的语句处放置一个大箭头。并发布堆栈跟踪。
-
我已经编辑了带有特定行抛出错误的问题以及完整的代码。请帮忙。
-
异常信息已经包含了你需要的信息。缓冲区不够大,无法从中解码 32 位无符号整数。一个 32 位整数需要 4 个字节,为避免此问题,请检查缓冲区 (
message) 的长度是否至少为 4 个字节。