如何传递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);