m5061125 2015-03-25 11:34 采纳率: 0%
浏览 1548

请教:关于从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条回答

  • threenewbee 2015-03-25 12:55
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器