gpt4 book ai didi

c# - 为什么带有嵌套数组的 Marshal.PtrToStructure 会抛出 ExecutionEngineException?

转载 作者:太空宇宙 更新时间:2023-11-03 13:32:39 28 4
gpt4 key购买 nike

我正在尝试将 byte[] 转换为包含数组的结构,该结构包含数组。

像这样:

[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct Util_VersionType
{
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.LPStr, SizeConst = 5000)]
public DataItemsString[] Data;
}

[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct DataItemsString {
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U1, SizeConst = 10)]
public System.Byte[] Value;
public System.UInt32 Validity;
}

我使用 Marshal.PtrToStructure

有时没有问题,但在大约 100 次尝试后,CLR 会抛出无法捕获的 ExecutionEngineException。

请帮忙。我迷路了。

最佳答案

看起来这个异常与上述结构的编码没有直接关系。

请查看您的代码以通过另一个线程交叉访问同一实例。

关于c# - 为什么带有嵌套数组的 Marshal.PtrToStructure 会抛出 ExecutionEngineException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19947047/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com