使用SWIG将std::array转换为C#array 我试图用STD::数组包装一个C++类。在C#中,我希望将这个std::数组用作普通数组。C++类可以是这样的: #pragma once #include <array> struct Data { int member1, member2; }; class TestClass { public: std::array<Data, 2> GetExampleArray() { Data item1; Data item2; item1.member1 = 0; // Initialize with some boring data item1.member2 = 1; item2.member1 = 3; item2.member2 = 4; return { item1, item2 }; } };
我的第一个想法是“让我们用typemaps传递一个指向C的指针!”直到我意识到这不是C样式的数组,即使是,我也无法传递长度。使用SWIG将std::array转换为C#array 我试图用STD::数组包装一个C++类。在C#中,我希望将这个std::数组用作普通数组。C++类可以是这样的: #pragma once #include <array> struct Data { int member1, member2; }; class TestClass { public: std::array<Data, 2> GetExampleArray() { Data item1; Data item2; item1.member1 = 0; // Initialize with some boring data item1.member2 = 1; item2.member1 = 3; item2.member2 = 4; return { item1, item2 }; } };,c#,c++,swig,stdarray,C#,C++,Swig,Stdarray,我的第一个想法是“让我们用typemaps传递一个指向C的指针!”直到我意识到这不是C样式的数组,即使是,我也无法传递长度。 所以我的问题是:我可以采取哪些步骤将其数据放入C#数组??看起来我的SWIG版本太旧了一些。该文件在那里不存在。。。现在它起作用了。谢谢我投票结束这个问题,因为它已经通过更新SWIG版本解决了。 class Program { static void Main(string[] args) { TestClass testClass = n
所以我的问题是:我可以采取哪些步骤将其数据放入C#数组??看起来我的SWIG版本太旧了一些。该文件在那里不存在。。。现在它起作用了。谢谢我投票结束这个问题,因为它已经通过更新SWIG版本解决了。
class Program
{
static void Main(string[] args)
{
TestClass testClass = new TestClass();
Data myData = testClass.GetExampleArray()[0];
Console.WriteLine(myData.member1);
}
}