当前位置: 代码迷 >> VC >> 怎么传递double*型变量
  详细解决方案

怎么传递double*型变量

热度:4677   发布时间:2013-02-25 00:00:00.0
如何传递double*型变量
在Visual C++  2012  Winform环境下,调用一个第三方DLL中的函数,函数声明如下:

DLL_PORT_TYPE BOOL DLL_PORT_FUNCTION_TYPE DLL_Get_Wavelength  (double  dblCaseTemperature,     double* pdblWavelength   ); 

其中第二个参数 pdblWavelength:   类型是Pointer of double wavelength array buffer(波长数组的指针)

我尝试如下如下方法调用该函数:
double* caseTem = nullptr;
static array<Double^>^ douPdblwL = gcnew array<Double^>(512);
getWavelengthSuccess = DLL_Get_Wavelength(*caseTem, douPdblwL);

编译会提示错误:“DLL_Get_Wavelength”: 不能将参数 2 从“cli::array<Type> ^”转换为“double *”

请问该如何定义douPdblwL的类型呢,谢谢。
------解决方案--------------------------------------------------------
你那是泛型,你就用普通的double[]
------解决方案--------------------------------------------------------

static array<Double^>^ douPdblwL = gcnew array<Double^>(512);//这里有错
改为
double* caseTem = nullptr;
static array<Double>^ douPdblwL = gcnew array<Double>(512);
=====
因为double是值类型。

pin_ptr<double> pin = &douPdblWL[0];
double* temp = pin;
getWavelengthSuccess = DLL_Get_Wavelength(*caseTem, temp);
  相关解决方案