0

我有一个返回 6 个双精度数组的函数。

double* Validation();

我想将此返回值转换为托管代码。

array<double>^ validationPosition = gcnew array<double>(6);
validationPosition = Validation();

我收到此错误:

error C2440: '=' : cannot convert from 'double *' to 'cli::array<Type> ^'

我该怎么做?

谢谢。

4

2 回答 2

4

如果您希望它位于托管阵列中,则需要将其复制到阵列中。本机 double* 数组不能直接用作托管数组。

您可以使用 Marshall::Copy 来复制它,或者只是循环遍历您的 6 个值。

您还希望(可能)删除 [] 您的返回值,因为这听起来像是在您的 validation() 例程内部分配一个数组。

于 2009-04-14T15:19:10.887 回答
0

您可以编写一个函数,遍历原始 double* 中的每个变量,并将值放入 cli::array 中的相关容器中,然后返回新数组。

于 2009-04-14T15:19:51.837 回答