本机C结构数组到托管(C ++ / Cli)结构数组

时间:2013-03-25 22:38:13

标签: c++ .net c interop c++-cli

我正在尝试将本机C结构数组转换为C ++ / Cli托管结构数组,然后我可以将其传递给C#。 我正在寻找最好的,更高效的方式。我试图避免使用转换循环的明显方法。

这是我的代码:

#pragma unmanaged

struct MyStruct 
{
    int Integer;
    double Double;
};

static void populateNative(MyStruct*&structArray,int size)
{
    structArray = new MyStruct[size];
    for(int i=0;i<size;i++)
    {
        structArray[0].Integer = i;
        structArray[0].Double = i;
    }
}

#pragma managed

using namespace System;
using namespace System::Runtime::InteropServices;

public ref struct MyStructManaged
{
    int Integer;
    double Double;
};


int main(array<System::String ^> ^args)
{
    int size = 10;
    MyStruct *structArray;
    populateNative(structArray, size);

    //How to transform MyStruct* to array<MyStructManaged> ?

    return 0;
}

如何将struct数组从native转换为托管C ++?

感谢。

0 个答案:

没有答案