gpt4 book ai didi

c# - 编码一个未知的数组大小

转载 作者:太空狗 更新时间:2023-10-29 19:44:43 26 4
gpt4 key购买 nike

你有一个接受字节数组的结构

byte[]

但是,该数组的大小取决于您提交的图像(widthxheight)

那么……你好吗

[MarshalAs(UnmanagedType.ByValArray, SizeConst = ???)]
public Byte[] ImageData;

在处理从 C# 传递到 C dll 的字节数组时,sizeconst 是必须具备的吗?

最佳答案

您需要更改编码类型。如果您编码为 ByValArray,则需要 SizeConst,但对于其他类型则不需要。详情看UnmanagedType enum .

我怀疑你想编码为指向数组的 C 指针:

[MarshalAs(UnmanagedType.LPArray)]

这将导致它编码为标准 C 数组 (BYTE*),因此仅传递一个指针。这样做允许您传递任何大小的数组。通常,您还希望将数组大小作为另一个参数(或图像宽度/高度/bpp,它们提供相同的信息)传递,因为在 C/C++ 中无法轻松地告诉它。

关于c# - 编码一个未知的数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1240055/

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