如何将3D数组返回到Unmaged代码

时间:2016-03-22 18:41:23

标签: arrays c++-cli

我是C ++的新手。并编写CLI包装器以使用托管代码(DLL)

public:array<double, 3>^ CallingBrownianManagedCode(int numPaths, int dimension, double time, int seed, array<double, 2>^ covMatrix, double stepSize, int scrambling)
    {
        std::string str = "Sobol";
        String^ newSystemString = gcnew String(str.c_str());

        Object^ result;
        result = IDevModel::RandomNumberGenerator::iBrownianBridge(numPaths, dimension, time, seed, covMatrix, stepSize, newSystemString, scrambling);
        array<double, 3>^ devArray = (array<double, 3>^) result;

        return devArray;
    }

我已经使用CLI控制台应用程序测试了上述代码,它可以根据需要运行。现在我需要将此方法公开给

UnManged C ++

__declspec(dllexport) void CallBrownianManagedAdapter()
{
   BrownianWrapper::BrownianBridgeAdapter objectBrownian;
   array<double, 3>^ brownianArray = objectBrownian.CallingBrownianManagedCodeTemp();
   return brownianArray;        
}

而不是void它必须是一个3d数组。我尝试返回manged array ^,但它抛出了一个错误。 你能帮我么?我很感激。

0 个答案:

没有答案