C,如何将多维数组传递给 CLR/类库项目中的函数

Posted

技术标签:

【中文标题】C,如何将多维数组传递给 CLR/类库项目中的函数【英文标题】:C , How can I pass a multidimensional array to a function in a CLR/Class Library project 【发布时间】:2012-11-21 01:47:59 【问题描述】:

我正在尝试用 c++(在 CLR/类库下)编写一个 dll,以将其添加为 vb.net 项目中的引用。 我解释我遇到的问题: 当我在不使用数组或指针的情况下编写通用函数时,一旦我构建了我的 c++ 项目并将生成的 dll 作为引用添加到我的 vb.net 项目中,我就可以可视化并使用这个函数。但是,当我尝试编写一个必须使用多维数组的函数时,在 vb 的“对象查看器”中显示的方法中,我的新函数不存在。

有没有什么我应该知道的,特别是在函数中使用多维数组作为参数,当我添加我的 dll 作为引用时可见? 或者也许我必须遵循完全不同的方式?

请告诉我如何解决这个问题。

感谢您能给我的任何帮助!

【问题讨论】:

【参考方案1】:

一种解决方案,使用 C++/CLI DLL 作为中介。 C++/CLI 可以处理本机类型和托管类型。因此,您可以先将 natvie 多维数组作为参数传递给 C++/CLI,然后在 C++/CLI Dll 中创建托管多维数组,并将本机多维数组的值分配给托管多维数组。最后,这个托管的可以传递给 VB.NET。

我以前用这个解决方案将多维数组从C传递到C#,当时我试图找到更好的解决方案,但我没有。我希望现在会有。

【讨论】:

您能否提供一些关于此的参考资料或示例?非常感谢! 请参考:***.com/questions/10223186/…。对于 C++CLI:functionx.com/cppcli/index.htm.

以上是关于C,如何将多维数组传递给 CLR/类库项目中的函数的主要内容,如果未能解决你的问题,请参考以下文章

将多维数组传递给函数 C

如何将多维动态数组传递给C++中的函数

如何将零填充的多维数组传递给 C++ 中的函数?

c++ - 如何将多维数组传递给没有内部维度的函数? [复制]

传递可变大小的多维数组

如何在 C++ CLR 中将数组<System::Byte> 转换为 char*?