dll函数原型:
  type dblarray=array[1..4] of double;ParaType=array of double; angarray=array[1..2] of double;
  ParaType2=array[1..7] of double;ParaType3=array[1..6] of double;  function Calfugai(BSPara:ParaType2;ScenePara:ParaType3;ValueH:ParaType;
  Horizang:ParaType;ValueV:ParaType;Vertang:ParaType):dblarray;StdCall;
 (代码略)Dephi中可以使用成功
  声明: 
  type dblarray=array[1..4] of double;ParaType4=array[1..74] of double;
     ParaType2=array[1..7] of double;
     ParaType3=array[1..6] of double;ParaType=array of double;
  function Calfugai(BSPara:ParaType2;ScenePara:ParaType3;AtnHorPara:ParaType;
  AtnHorSamp:ParaType;AtnVertPara:ParaType;AtnVertSamp:ParaType):dblarray;StdCall;
  external 'simout.dll';
调用:
  funcren:=Calfugai(BSPara,ScenePara,AtnHorPara,AtnHorSamp,AtnVertPara,AtnVertSamp);
    Edit1.Text:=FloatToStr(funcren[1]);
    Edit3.Text:=FloatToStr(funcren[2]);
    Edit4.Text:=FloatToStr(funcren[3]);
    CoverArea:=PI*funcren[3]*funcren[3];我在C#中使用老是出错
  无法封送处理“return value”: 无效的托管/非托管类型组合。  [DllImport("simout.dll", EntryPoint = "Calfugai", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling =
            true, CallingConvention = CallingConvention.StdCall)]
            public static extern double[] Calfugai(double[] BSPara, double[] ScreenPara,
                double[] AtnHorPara, double[] AtnHorSamp, double[] AtnVertPara, double[] AtnVertSamp);
//测试数据,6个参数
            double[] BSPara ={100.01,40.22,41,30,45,8,100 };(略)
double[] reuslt = simoutdll.Calfugai(BSPara, ScreenPara, AtnHorPara, AtnHorSamp, 
AtnVertPara, AtnVertSamp);