第一个参数的类型不对,按照你的解释应该是Point类型指针才对

解决方案 »

  1.   

    对对,是Point类型的指针,但是在C#如何把Point类型的数组的地址传递给函数func((long*)point,(long*)pointnum),想了很长时间,尝试过很多办法,都不行。
      

  2.   

    唉呀..你就好好用你的C++,为什么要用C#呀,C#的互操作是相当麻烦的,还不如直接用C++
      

  3.   

    咳,不是因为不想用C++,目前这个项目用C#比较快,但是必须得调用一个C++写的DLL文件,所有才有这个问题,望高手指教一下!!!
      

  4.   

    to 对对,是Point类型的指针,但是在C#如何把Point类型的数组的地址传递给函数func((long*)point,(long*)pointnum),想了很长时间,尝试过很多办法,都不行。首先,按照
    http://www.pinvoke.net/default.aspx/Structures/POINT.html
    在c#中重新定义POINT类型,然后再进行调用的时候,用Marshal.UnsafeAddrOfPinnedArrayElement方法把POINT类型的数组转换成IntPtr类型,再调用。函数的dllimport改成如下
    [DllImport(...)]
    private static extern void func( IntPtr point,ref int pointnum);