Здравствуйте, уважаемые!
Относительно недавно перешел на Лазарус и столкнулся с такой проблемой (версии 0.9.28.2, 0.9.29):
Вот такой код (взят пример из книги по Лазарусу) компилируется без проблем:
Library subs ;
function SubStr ( CString : PChar ; FromPos , ToPos : Longint ) : PChar ; cdecl ;
var Length : Integer ;
begin
Length := StrLen ( CString ) ;
SubStr := CString + Length ;
if ( FromPos > 0 ) and ( ToPos >= FromPos ) then
begin
if Length >= FromPos then SubStr := CString + FromPos - 1;
if Length > ToPos then CString [ ToPos ] := # 0 ;
end ;
end ;
exports
SubStr;
end .
Но если я использую в библиотеке модуль и ссылаюсь на него:
{код библиотеки}
library project1;
{$mode objfpc}{$H+}
uses
Classes, Unit1;
{$R *.res}
exports
ShowForm name 'ShowForm'; cdecl;
end.
{код модуля, форма пустая}
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;
type
TForm1 = class(TForm)
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
procedure ShowForm;
implementation
{$R *.lfm}
procedure ShowForm; cdecl;
begin
with TForm1.Create(nil) do
begin
Hide;
ShowModal;
Free;
end;
end;
end.
На этапе компиляции выдается ошибка unit1.pas(8,22) Fatal: Can't find unit FileUtil used by Unit1
Может кто сталкивался с подобным, подскажете чего.