想通过DLL将VC中的函数输出数组给DELPHI使用,请问DELPHI如何设计接受函数?好象不能接收VC传来的指针啊?
VC中代码如下:
float myarray[3]={1,2,3};
extern "C" _declspec(dllexport)float *exportarray(int size){
for (int i=0;i<size;i++)
myarray[i]=myarray[i]+3;
return myarray;
}

解决方案 »

  1.   

    type
      myArray=array[0..2] of Double;
      p_myArray=^myArray;
    ///////////////
    var
      p:p_myArray;
    begin
      p1:=exportarray(3);
      

  2.   

    具体的调用还要使用静态调用/动态调用DLL  ...............
      

  3.   

    type
      myArray=array of Double;
      p_myArray=^myArray;
    ///////////////
    var
      p:p_myArray;
    begin
      new(p);
      SetLength(p^,3);
      myhandle:=LoadLibrary('test.dll');
      //Type TGetData=function(size:Integer ):p_myArray ;Cdecl;
      //GetData:TGetData
      @GetData:=GetProcAddress(myhandle,'exportarray');
      p:=GetData(4);  
      Edit1.Text:=FloatToStr(p^[2]);//输出返回的第3个数上述代码运行时仍然出错啊!
    To hongqi162(失踪的月亮):给点建议好么?谢谢