D5DG的例子,显示DLL的创建:
{
Copyright ?1998 by Delphi 4 Developer's Guide - Xavier Pacheco and Steve Teixeira
}unit PenniesInt;
{ Interface routine for PENNIES.DLL }interface
type  { This record will hold the denominations after the conversion have
    been made }
  PCoinsRec = ^TCoinsRec;
  TCoinsRec = record
    Quarters,
    Dimes,
    Nickels,
    Pennies: word;
  end;{$IFNDEF PENNIESLIB}
{ Declare function with export keyword }function PenniesToCoins(TotPennies: word; CoinsRec: PCoinsRec): word; StdCall;
{$ENDIF}implementation{$IFNDEF PENNIESLIB}
{ Define the imported function }
function PenniesToCoins; external 'PENNIESLIB.DLL' name 'PenniesToCoins';
{$ENDIF}end.
 
{
Copyright ?1999 by Delphi 5 Developer's Guide - Xavier Pacheco and Steve Teixeira
}library PenniesLib;
{$DEFINE PENNIESLIB}
uses
  SysUtils,
  Classes,
  PenniesInt;function PenniesToCoins(TotPennies: word; CoinsRec: PCoinsRec): word; StdCall;
begin
  Result := TotPennies;  // Assign value to Result
  { Calculate the values for quarters, dimes, nickels, pennies }
  with CoinsRec^ do
  begin
    Quarters    := TotPennies div 25;
    TotPennies  := TotPennies - Quarters * 25;
    Dimes       := TotPennies div 10;
    TotPennies  := TotPennies - Dimes * 10;
    Nickels     := TotPennies div 5;
    TotPennies  := TotPennies - Nickels * 5;
    Pennies     := TotPennies;
  end;
end;{ Export the function by name }
exports
  PenniesToCoins;
end.

解决方案 »

  1.   

    现在是DLL的使用:
    {
    Copyright ?1999 by Delphi 5 Developer's Guide - Xavier Pacheco and Steve Teixeira
    }unit MainFrm;interfaceuses
      SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
      Forms, Dialogs, StdCtrls, Mask;type  TMainForm = class(TForm)
        lblTotal: TLabel;
        lblQlbl: TLabel;
        lblDlbl: TLabel;
        lblNlbl: TLabel;
        lblPlbl: TLabel;
        lblQuarters: TLabel;
        lblDimes: TLabel;
        lblNickels: TLabel;
        lblPennies: TLabel;
        btnMakeChange: TButton;
        meTotalPennies: TMaskEdit;
        procedure btnMakeChangeClick(Sender: TObject);
      end;var
      MainForm: TMainForm;implementation
    uses PenniesInt;  // Use an interface unit{$R *.DFM}procedure TMainForm.btnMakeChangeClick(Sender: TObject);
    var
      CoinsRec: TCoinsRec;
      TotPennies: word;
    begin
      { Call the DLL function to determine the minimum coins required
        for the amount of pennies specified. }
      TotPennies := PenniesToCoins(StrToInt(meTotalPennies.Text), @CoinsRec);
      with CoinsRec do
      begin
        { Now display the coin information }
        lblQuarters.Caption := IntToStr(Quarters);
        lblDimes.Caption    := IntToStr(Dimes);
        lblNickels.Caption  := IntToStr(Nickels);
        lblPennies.Caption  := IntToStr(Pennies);
      end
    end;end.