我在哪里做错了什么?执行时出错(运行时错误)

Xorraxx

我做错了什么 我收到一个错误:在此行中:

Buffer.BlockCopy((Array) numArray, icondirentry.ImageOffset, (Array)
                 iconFile.iconImage[index], 0, icondirentry.BytesInRes);

错误:数组的偏移量和长度超出范围,或者计数大于从索引到源集合末尾的元素数。

此方法的完整代码为:

 public static IconClass.IconFile FromFile(string filename)
      {
        IconClass.IconFile iconFile = new IconClass.IconFile();
        byte[] numArray = File.ReadAllBytes(filename);
        GCHandle gcHandle = GCHandle.Alloc((object) numArray, GCHandleType.Pinned);
        iconFile.iconDir = (IconClass.ICONDIR) Marshal.PtrToStructure(gcHandle.AddrOfPinnedObject(), typeof (IconClass.ICONDIR));
        iconFile.iconEntry = new IconClass.ICONDIRENTRY[checked ((int) iconFile.iconDir.Count - 1 )];
        iconFile.iconImage = new byte[checked ((int) iconFile.iconDir.Count - 1)][];
        int num1 = Marshal.SizeOf((object) iconFile.iconDir);
        Type type = typeof (IconClass.ICONDIRENTRY);
        int num2 = Marshal.SizeOf(type);
        int num3 = 0;
        int num4 = checked ((int) iconFile.iconDir.Count - 1);
        int index = num3;
        while (index <= num4)
        {
          IconClass.ICONDIRENTRY icondirentry = (IconClass.ICONDIRENTRY) Marshal.PtrToStructure(new IntPtr(checked (gcHandle.AddrOfPinnedObject().ToInt64() + (long) num1)), type);
          iconFile.iconEntry[index] = icondirentry;
          iconFile.iconImage[index] = new byte[checked (icondirentry.BytesInRes - 1 )];
          Buffer.BlockCopy((Array) numArray, icondirentry.ImageOffset, (Array) iconFile.iconImage[index], 0, icondirentry.BytesInRes);
          checked { num1 += num2; }
          checked { ++index; }
        }
        gcHandle.Free();
        return iconFile;
      }
元帅
(Array) iconFile.iconImage[index]

检查index是否不大于IconImage成员(数组,列表或其任何大小)的大小。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java:方法;我在哪里做错了?

来自分类Dev

可执行文件在运行时在哪里寻找共享对象?

来自分类Dev

为什么我的代码出现运行时错误?

来自分类Dev

为什么我的代码给出运行时错误?

来自分类Dev

UVa 562 运行时错误。我能做什么?

来自分类Dev

第七行的运行时错误在哪里(从文件中读取矩阵)?

来自分类Dev

在IOS模拟器下运行时,我的代码在哪里?

来自分类Dev

Xamarin Visual Studio Mac:“运行时”节点是什么?在哪里?

来自分类Dev

为什么此代码编译并在执行时给出运行时错误

来自分类Dev

在哪里抛出HTTP运行时异常

来自分类Dev

选择运行时在哪里保存文件

来自分类Dev

运行时将解密文件存储在哪里?

来自分类Dev

在哪里下载Spring Roo 1.2.4运行时?

来自分类Dev

Visual C ++ Update 2运行时在哪里

来自分类Dev

运行时将解密文件存储在哪里?

来自分类Dev

我的排序算法运行时错误

来自分类Dev

为什么ClassCastException是运行时错误?

来自分类Dev

获取运行时错误“6”:溢出错误

来自分类Dev

将数据框转换为 xts 进行时间序列分析时我做错了什么?

来自分类Dev

我在哪里做错了/做和陈述

来自分类Dev

在哪里可以获取在jdk 1.6中编译的OkHttpClient版本?我在WAS 7上运行时遇到UnsupportedClassVersionError

来自分类Dev

我安装 react-native 并首次运行时出错

来自分类Dev

为什么我的 vba 脚本在逐行执行时(在调试中)有效,但在运行时无效?

来自分类Dev

为什么从Xcode运行时,我的ios应用似乎只继续执行后台任务

来自分类Dev

为什么我的程序在运行时给我错误的输出?

来自分类Dev

我收到运行时错误NZEC请告诉我是什么问题

来自分类Dev

我的VBA代码有什么问题(我收到运行时错误9)

来自分类Dev

为什么我的代码在运行时给我一个stackdump错误?

来自分类Dev

¿我做错了什么?

Related 相关文章

  1. 1

    Java:方法;我在哪里做错了?

  2. 2

    可执行文件在运行时在哪里寻找共享对象?

  3. 3

    为什么我的代码出现运行时错误?

  4. 4

    为什么我的代码给出运行时错误?

  5. 5

    UVa 562 运行时错误。我能做什么?

  6. 6

    第七行的运行时错误在哪里(从文件中读取矩阵)?

  7. 7

    在IOS模拟器下运行时,我的代码在哪里?

  8. 8

    Xamarin Visual Studio Mac:“运行时”节点是什么?在哪里?

  9. 9

    为什么此代码编译并在执行时给出运行时错误

  10. 10

    在哪里抛出HTTP运行时异常

  11. 11

    选择运行时在哪里保存文件

  12. 12

    运行时将解密文件存储在哪里?

  13. 13

    在哪里下载Spring Roo 1.2.4运行时?

  14. 14

    Visual C ++ Update 2运行时在哪里

  15. 15

    运行时将解密文件存储在哪里?

  16. 16

    我的排序算法运行时错误

  17. 17

    为什么ClassCastException是运行时错误?

  18. 18

    获取运行时错误“6”:溢出错误

  19. 19

    将数据框转换为 xts 进行时间序列分析时我做错了什么?

  20. 20

    我在哪里做错了/做和陈述

  21. 21

    在哪里可以获取在jdk 1.6中编译的OkHttpClient版本?我在WAS 7上运行时遇到UnsupportedClassVersionError

  22. 22

    我安装 react-native 并首次运行时出错

  23. 23

    为什么我的 vba 脚本在逐行执行时(在调试中)有效,但在运行时无效?

  24. 24

    为什么从Xcode运行时,我的ios应用似乎只继续执行后台任务

  25. 25

    为什么我的程序在运行时给我错误的输出?

  26. 26

    我收到运行时错误NZEC请告诉我是什么问题

  27. 27

    我的VBA代码有什么问题(我收到运行时错误9)

  28. 28

    为什么我的代码在运行时给我一个stackdump错误?

  29. 29

    ¿我做错了什么?

热门标签

归档