假设C/C++中有这样一个函数: int num(int add,long start,int n,float *val,int *),val和‘代表数组,我在C#中声明如下:[DllImport("xxx.dll"),EntryPoint="num"]static extern int num(int add,int ch,int n,float[] A,int[] B),大家看这样正确吗?多谢!

解决方案 »

  1.   

    [DllImport("xxx.dll"),EntryPoint="num"]static extern int num(int add,int ch,int n,[In,Out]float[] A,[In,Out]int[] B)
    In 还是Out 根据需要
      

  2.   

    static extern int num(int add,int ch,int n,ref float A,ref int B);
      

  3.   

    如果声明static extern int num(int add,int ch,int n,ref float A,ref int B);
    那么我在C#中怎么调用这个函数?
      

  4.   

    你去看下PINVOKE的知识,关于数组。结构体如何传递值以及使用方法都有介绍