请教:关于从C#调用外部C++ DLL出错,二维指针参数不匹配

我是新人,头一次发帖,如果这个问题太低级还请各位大神原谅!

我在写一段C#代码调用外部一个C++DLL,该DLL数据初始化部分接口是这样的:
public unsafe void SetImage(ushort** slices, int xSize, int ySize, int zSize)

其中第2-4个参数分别是一个3维图像数据的长宽高,我们假定图像是512×512×400;而这个二维指针参数slices则是指向指针的指针。说白了就是联合表示上述图像数据在内存中的地址,具体说其中每一个一维指针对应一张512×512大小图片在内存中的首地址,这个是已知的。而这个Slices则是指向这个连续的一维指针的首地址。假设每张图片的首地址我都已经存在ushort Iadd[]这个数组中了,我该这么构造这个slices才能让SetImage( slices, 512, 512, 400)真确编译呢?

搜索了网上很多内容,包括下面的帖子,但还是搞不定。
http://zhidao.baidu.com/link?url=7lov0mg2g49f0Ij25vtgaXIjP1gqH7MYXQIM9ylc0pUIB3DNOLHhCqasUz51UJ_OKJ0Kpi-tb8s2DN8Ey0K2f_

先谢谢各位前辈了!

1个回答

一会儿一维数组,一会儿二维数组,一会儿三维数组,到底你要哪样。实际上你直接传一个一维数组的指针,数组的大小是x * y * z就可以了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐