vc dll中如下定义:
struct result{
    char    mess[100];
    int     number;
    bool    flag;    
    char    variable[10];
    double  value;
    char    ele_result[250];
};#define DllExport _declspec(dllexport)
extern "C" DllExport struct result  engine(char *,char *);delphi调用程序中如下:
 type
  result = record
    mess:string[100];
    number:integer;
    flag:Boolean;
    variable:string[10];
    value:double;
    ele_result:string[250];
  end;
function engine(v1:pchar;v2:pchar):result;stdcall;
                 external 'inference.dll';procedure TForm1.Button1Click(Sender: TObject);
var
   res:result;
begin
  res := engine('pollution.dat','nox=200 and so2=103 and tsp=115');
  Series1.Add(res.value,FloatToStr(res.value),clBlue);
end;
运行后发现返回得到的结构体res中各项参数有问题,但是我跟踪dll文件中返回
结构体各项发现dll中是正确的。
譬如说第一项:mess.
         如果dll函数运行成功的话,mess将为'well done'.但是delphi中返回
     结构体res.mess得到的却是'ell done';
而第五项value返回得到的是正确的。最后一项则是字符串尾部部分是正确的,前部分
则会是乱七八糟的代码。我想这可能是因为delphi 与 vc编译器对结构体编译的处理不同引起的吧?!
不知道如何处理。
请各位高手帮忙!