用VC++写的DLL如下:
extern "C" PINVOKELIB_API void CallTest(int ndata,double *xydata,double* fdata,int nx_out,int ny_out,double* x_out, double* y_out,double** zGrid)
{
char tmpbuf[128];
sprintf(tmpbuf,"zGrid[1][1]=%f %f",xydata[4],xydata[5]);
::MessageBox(0,"test","wer",0);
::MessageBox(0,tmpbuf,"wer",0); zGrid[0][10]=987.654321;
zGrid[5][0]=53.535353;
}
C#这样引入
        [DllImport("H:\\WorkTmp\\Gridwarp\\Gridwarp\\gridCon.dll", EntryPoint = "CallTest", CharSet =CharSet.Ansi )]
        public static extern void CallTest(int ndata, double[] xydata, double[] fdata, int nx_out, int ny_out,  double[] x_out,double[] y_out,[In,Out] double[,] zGrid);总是出现错误:
未处理 System.AccessViolationException
  Message="尝试读取或写入受保护的内存。这通常指示其他内存已损坏。"怎么办?请大虾出手帮忙!
谢谢
刚学C#,很多问题没搞明白,请大家赐教。