unit BBS;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBClient, SimpleDS, Grids, DBGrids;type
  TBBSForm = class(TForm)
    BBSDBGrid: TDBGrid;
    BBSSimpleDataSet: TSimpleDataSet;
    BBSDataSource: TDataSource;
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  BBSForm: TBBSForm;function CreateBBSForm(AHandle: THandle;panel :TwinControl):boolean;stdcall;overload;implementation{$R *.dfm}
function CreateBBSForm(AHandle: THandle;panel :TwinControl):boolean;stdcall;overload;
begin
  application.Handle :=AHandle;
  BBSForm :=TBBSForm.Create(BBSForm);
  try
    BBSForm.ParentWindow :=panel.Handle;
    BBSForm.Align :=alClient;
    BBSForm.BorderStyle :=bsNone;
    BBSForm.BBSSimpleDataSet.FileName :=ExtractFilePath(Application.ExeName)+'\data\a.xml';
    BBSForm.BBSSimpleDataSet.Active :=true;
    BBSForm.BBSDataSource.DataSet := BBSForm.BBSSimpleDataSet;
    BBSForm.BBSDBGrid.DataSource := BBSForm.BBSDataSource;
    BBSForm.Show;
    Result :=False;  except
    on e:Exception do
    begin
      Result :=true;
      BBSForm.Free;
      ShowMessage('xmlForm DLL error '+e.Message);
    end;
  end
end;
exports
  CreateBBSForm(AHandle: THandle; panel: TwinControl) name 'CreateBBSForm';end.
调用type
  CreateBBSForm=function (AHandle: THandle;panel :TwinControl):boolean;stdcall;{$R *.dfm}
procedure TMainForm.OpenBBS;
var
  Thad:THandle;
  CreateBBS :CreateBBSForm;
begin
    MainForm.BorderIcons := [biSystemMenu,biMinimize,biMaximize];
    MainForm.AutoSize :=false;
    MainForm.WindowState :=wsMaximized;
  try
  Thad :=SafeLoadLibrary('BBSDLL.dll');
  if Thad =0 then
  begin
    Raise Exception.Create('faild load library');
  end;
  CreateBBS := GetProcAddress(Thad,'CreateBBSForm');
  CreateBBS(Handle,Panel1);
  FreeLibrary(Thad);
  except
    on e:exception do
    showmessage(e.Message);
  end
  {打开论坛部分窗口}
end;提示错误.怎么这么奇怪.