将大型多维数组从c ++ dll返回到vb

时间:2015-10-16 04:56:06

标签: c++ arrays vb.net dll multidimensional-array

我正在用c ++编写一个dll,它将向调用的VB可执行文件返回一个大的多维双精度数组。首先,它将是3维,但最终会增加到11维。

应该怎么做? 我只是假设在堆栈上分配是一个坏主意。

我想象这将按如下方式完成(3D案例):

__declspec(dllexport) double __stdcall ***funcRet3Darr(double var1, double *var2, int dim1, int dim2, int dim3)
{
  double ***retarr = new double **[dim1];
  for (int i = 0; i<dim1; i++)
  {
    retarr[i] = new double *[dim2];
    for (int j = 0;j<dim2; j++)
      retarr[i][j] = new double [dim3];
  }

  // code to fill the values in retarr

  return retarr;
}

但是(问题2):在dll中创建的指针retarr会发生什么?如果多次调用c ++函数,它会成为内存问题吗?是否需要在dll函数中删除? (怎么会这样做?)

0 个答案:

没有答案