我把函数add在VC中做成dll文件导出供PB调用,又想把其中的数组c[]也给导出,可以吗?
   _declspec(dllexport) add (double a[],double b[],int n)   //数组a[],b[]接受调用函数传入的值,n为数组的维数
{
  int i;
  double *c;
  c=malloc(n*sizeof(double)); 
  for(i=0;i<n;i++)
 {
  c[i]=a[i]+b[i]                  //我想把数组c[]做成dll给导出去,可以吗?
 }
}
  你可能建议我函数return c  ,但我是用PB调用该函数dll,而PB中没有指针和引用概念,所以此法不通。 请问,可以把数组c[]给导出吗? 可以的话给出代码。 或者有其他的什么解决问题的办法。
重分奖励!

解决方案 »

  1.   

    用指针作形参,在PB中申明函数,在参数前加ref
      

  2.   

    要是定义类,将数组c[]作为其公有数据成员,再将数组c[]给导出,做成dll文件,此法可行吗?
      

  3.   

    1、要做成规则DLL;
    2、将数组C作为形参导出:如
    _declspec(dllexport) add (double a[],double b[],c[],int n)
      

  4.   

    关键是写出比如说c中如何调用add以及数组c[].
      

  5.   

    1,_declspec(dllexport) add (double a[],double b[],double c[],int n)2,用指针作形参,在PB中申明函数,在参数前加ref3,PB没有指针,在调用时可以使用数组的第一个参数传递指针:
      add(a(0), b(0), c(0), n)