Имеем файл pdf.dll, без исходников. Имеем процедуры и функции, записаные в отдельном pdfhdr.pas файле, обращающиеся к этой библиотеке.
Кусок кода:
Код |
unit pdfhdr;
interface
uses Windows, Classes, Graphics, ShellAPI;
blablablablabla blablablablabla blablablablabla
implementation
procedure RolePDFBeginDoc(License, FileName, Title, Author, Subject, Keywords, Creator: PChar; PageWidth, PageHeight: integer); stdcall;
external 'pdf.dll';
procedure RolePDFNewPage; stdcall; external 'pdf.dll'; procedure RolePDFEndDoc; stdcall; external 'pdf.dll'; function RolePDFGetDC: HDC; stdcall; external 'pdf.dll'; function RolePDFPageCount: integer; stdcall; external 'pdf.dll'; function RolePDFPageWidth: integer; stdcall; external 'pdf.dll'; function RolePDFPageHeight: integer; stdcall; external 'pdf.dll'; function RolePDFAddOutline(Title: PChar; ParentID, PageNo, Top: integer): integer; stdcall; external 'pdf.dll';
procedure Register; begin RegisterComponents('Roledata', [TRolePDF]); end;
constructor TRolePDF.Create(AOwner: TComponent); begin inherited Create(AOwner); FLicense := TStringList.Create; FCanvas := TCanvas.Create; PageSize := psA4; end;
destructor TRolePDF.Destroy; begin FLicense.Free; FCanvas.Free; inherited Destroy; end;
procedure TRolePDF.SetOrientation(Value: TPageOrientation);
procedure swap; var n: integer; begin n := FPageWidth; FPageWidth := FPageHeight; FPageHeight := n; end;
begin FOrientation := Value; if FOrientation = poPortrait then begin if FPageWidth > FPageHeight then swap; end else begin if FPageWidth < FPageHeight then swap; end; end;
blablablablabla
procedure TRolePDF.NewPage; begin RolePDFNewPage; end;
blablablablabla blablablablabla blablablablabla
|
pdf.dll скомпилен в res файл: pdfdll.rc=
Код | pdfdll RCDATA "pdf.dll"
|
Вопрос- каким образом переделать код pdfhdr, чтоб он обращался к dll'ке в res файле? |