我是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控制台应用程序测试了上述代码,它可以根据需要运行。现在我需要将此方法公开给
__declspec(dllexport) void CallBrownianManagedAdapter()
{
BrownianWrapper::BrownianBridgeAdapter objectBrownian;
array<double, 3>^ brownianArray = objectBrownian.CallingBrownianManagedCodeTemp();
return brownianArray;
}
而不是void它必须是一个3d数组。我尝试返回manged array ^,但它抛出了一个错误。 你能帮我么?我很感激。