C#调用C++双重指针的问题(高分求救)
飞天鹰 2008-01-15 08:18:39 我要把下面这段代码转换为C#的方法:
ihuReadRawDataByTime(
in int serverhandle,
in char *Tagname,
in IHU_TIMESTAMP *StartTime,
in IHU_TIMESTAMP *EndTime,
out int *number_of_samples,
out IHU_DATA_SAMPLE **data_values
);
我写的是:
[DllImport("ihuAPI", EntryPoint="ihuReadRawDataByTime@24",
CallingConvention=CallingConvention.StdCall,CharSet=CharSet.Ansi)]
public static extern ReadRawDataByTime(
int serverhandle,
string Tagname,
ref IHU_TIMESTAMP StartTime,
ref IHU_TIMESTAMP EndTime,
ref int number_of_samples,
ref IHU_DATA_SAMPLE []data_values
);
然后用:
ret = ReadRawDataByTime(serverhandle,Tagname,ref StartTime,ref EndTime,ref number_of_samples,ref data_values);
来调用,本来根据时间出来的应该是number_of_samples个数值,但我调用后data_values的length始终只是1。
求教高手,这到底是怎么回事啊?我感觉应该是我把out IHU_DATA_SAMPLE **data_values
转化到ref IHU_DATA_SAMPLE []data_values的方式有错!这里是双重指针!谢谢了!