我的程序是这样的:
//dll form
library Calendar;uses
  SysUtils,
  Classes,
  DllForm1 in 'DllForm1.pas' {DllForm};exports
  ShowCalendar;{$R *.res}begin
end.//Unit DllForm1
unit DllForm1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, DB, ADODB ,ActiveX, StdCtrls;type
  TDllForm = class(TForm)
    MonthCalendar1: TMonthCalendar;
    Label1: TLabel;
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  DllForm: TDllForm;
  function ShowCalendar(AHandle: THandle; ACaption: pchar): pchar;
implementation{$R *.dfm}function ShowCalendar(AHandle: THandle; ACaption: pchar): pchar;
var
  DF :  TDllForm;
begin
  Application.Handle := AHandle ;
  DF := TDllForm.Create(Application);
  showmessage(Acaption);
  try
    DF.ShowModal;
    Result := 'result';
  finally
    DF.Free;
  end;
end;
end.//调用dll的模块
program CALLPRJ;uses
  Forms,
  CALLER in 'CALLER.pas' {Form1};{$R *.res}begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.//Unit caller
unit CALLER;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, StrUtils;type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button3: TButton;
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;  type
  ShowCalendar = function(AHandle: THandle;  Acaption : pchar ): pchar;stdcall;
implementation{$R *.dfm}procedure TForm1.Button3Click(Sender: TObject);
var
  OH : THandle;
  sc: ShowCalendar;
begin
  OH := LoadLibrary('Calendar.dll');
  try
    if OH<>0 then
      @sc := GetProcAddress(OH,'ShowCalendar');
      if not (@sc=nil) then
        label1.Caption := sc(Application.Handle,pchar('hhh'))
      else
        RaiseLastWin32Error;
  finally
    FreeLibrary(Oh);
  END;
end;end.我的问题是,在Unit DllForm1的showmessage(Acaption)中,无法将‘hhh’显示出来,请各位高人指点,谢谢!