gpt4 book ai didi

c# - 如何使用表示字符串的 blittable 类型

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

我正在尝试使用 here 中描述的 ReadUsingPointer 方法拥有一个用于大型二进制文件的光速二进制阅读器。
但是,我试图传递给它的结构包含字符串。我想知道如何规避这一点并避免“无法获取托管类型的地址、获取其大小或声明指向托管类型的指针”消息

到目前为止,我尝试了以下操作但没有成功(也许访问这些字段是问题所在?):

 [MarshalAs(UnmanagedType.LPStr)]
string s;

我必须指定这些字符串字段在读取后使用并且在读取字节时不分配,所以我在读取时不需要它们(我可以使用没有这些字段的中间结构但是对于遗留问题我不能这样做)。

最佳答案

那么您的非托管结构是否包含字符数组?确实没有任何实用的方法(据我所知)以与批量复制兼容的方式在托管端对其进行建模,因为字符串和数组都是托管端的引用类型 - 如果您在中声明一个字符串一个 .NET 结构,那么实际的字符并不真正存在于那里——只有一个字符串指针存在。与数组相同。

关于c# - 如何使用表示字符串的 blittable 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9036905/

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