gpt4 book ai didi

c# - 编码二维数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:24:16 24 4
gpt4 key购买 nike

我要编码二维数组

int [10][20] //const dimensions size

从 C++ dll 到 C# 代码。有自动编码器吗?无法为如此简单的任务找到好的解决方案。

    public int[,] _operators;

给出未定义的值。是的,我可以将其设为一维,仅用于编码(marshal)处理,然后在 C# 中将其再次读取为 2 维,但是有自动简单的方法吗?

=================

我认为最好的方法是像这样使用指针:

            const int 1dSize = 10;
const int 2dSize = 10;
var ret = new int[1dSize, 2dSize];

unsafe
{
int* ptrOnArray = NativeLibPrototypes.Get2DArrayPtr();
for (int i1 = 0; i1 < 1dSize; i1++)
{
for (int i2 = 0; i2 < 2dSize; i2++)
{
ret[i1, i2] = *ptrOnArray;
ptrOnArray++;
}
}
}

最佳答案

尝试

[MarshalAs(UnmanagedType.ByValArray, SizeConst = 200)]
int[] _operators;

大小应该是数组中元素的数量。

检查这个Default Marshaling for Arrays

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

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