首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

怎么传递double*型变量

2012-12-26 
如何传递double*型变量在Visual C++2012Winform环境下,调用一个第三方DLL中的函数,函数声明如下:DLL_PORT_

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

热点排行