利用delphi生成了一个dll文件,在c#中进行调用,项目完成后,在本机(win7)运行良好,但是部署到xp系统后,却抛出System.Runtime.InteropServices.SEHException的异常。(已经在xp中安装过net framework3.5等环境)本人怀疑是该dll文件需要delphi的组件或者链接库支持,但是对delphi确实不熟,请高手明示。注: delphi的代码
uses
  SysUtils,
  DBClient,
  Classes;var
  CDS: TClientDataSet;  procedure Convert(FileNameOri:pchar; FileNameDes:pchar); stdcall;
    begin
    CDS := TClientDataSet.Create(nil);
      try
        CDS.LoadFromFile(FileNameOri);//将文件中数据装入到数据集中
        CDS.SaveToFile(FileNameDes, dfXMLUTF8);//将数据集中的数据保存
      finally
        CDS.Free;
        //CDS.Destroy();
      end;
    end;{$R *.res}
exports
  Convert;
begin
end.

解决方案 »

  1.   

    delphi 使用了很多WINDOWS api
    建议你用DELPHI写一个测试程序调用下,看能不能明确错误信息最好让DELPHI在XP下面重新编译下,你生成的应该是本地代码
      

  2.   

    这个真是不太清楚了。
    最好的办法是,把这个类库在xp下编译一次。
    然后在win7下使用相同的类库。就是说:在xp下开发所有的程序,在win7上运行。
      

  3.   

    在win7中我将delphi卸载了,程序果然无法通过,后来在网上下了一个delphi7的精简版(5M),程序又能通过了,但是在xp下却行不通
      

  4.   

    那就是delphi相关组件没有加载,之前调C++的动态库也常遇到此类问题。
      

  5.   

    http://topic.csdn.net/u/20101201/01/c57172b8-add0-4a33-b747-9cce750f92a5.html