日期:2014-05-17  浏览次数:20484 次

C#调用c++Dll指针数组
c代码
C/C++ code
 
 int  _stdcall
rd6sn_gethisdata_withinsert(u_int32_t pt, int starttime,int endtime,float *value,int type);


怎么写成C#的代码,返回float数组。
我写的如下:
C# code

 [DllImport(dll_name, EntryPoint = "rd6sn_gethisdata_withinsert")]
        public static extern int rd6sn_gethisdata_withinsert(UInt32 pt, int starttime, int endtime, ref  float[] value, int type);


DateTime dtend = DateTime.Parse("2012-5-7 10:30:00");
            DateTime dtBegin = DateTime.Parse("2012-5-7 10:10:00");
            DateTime DataTime1970 = DateTime.Parse("1970-1-1");
            int begitime = (int)(dtBegin - DataTime1970).TotalMilliseconds;
            int begiendtime = (int)(dtend - DataTime1970).TotalMilliseconds;
            long[] vlueflqqq = new long[1];
            float[] vluefl = new float[1];
 DataPeek.DPG.DPGClass.rd6sn_gethisdata_withinsert(8024, begitime, begiendtime, ref vluefl, 3);


运行出现“指针表尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的错误,请问应该怎么写

------解决方案--------------------
public static extern int rd6sn_gethisdata_withinsert(UInt32 pt, uint starttime, uint endtime, ref float[] value, int type); startime 和endtime改成无符号整形