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

C , How can I pass a multidimensional array to a function in a CLR/Class Library project

本文关键字:CLR 类库 项目 函数 数组      更新时间:2023-10-16

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

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

请让我知道如何解决此问题。

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

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

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