Code: Alles auswählen
program myApp;
{$mode objfpc}{$H+}
{$DEFINE GTK1}
{$DEFINE UNIX}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes, SysUtils, CustApp,Graphics,LCLIntf,Dialogs,IntfGraphics
{ you can add units after this };
type
{ Tprog }
Tprog = class(TCustomApplication)
protected
procedure DoRun; override;
public
end;
{ Tprog }
procedure Tprog.DoRun;
var
s:String;
bm:TJPEGImage;
pt:TPoint;
Image:TLazIntfImage;
begin
s:=self.Params[1];
bm:=TJPEGImage.Create;
try
bm.LoadFromFile(s);//Hier!
except
end;
Image:=bm.CreateIntfImage;
writeln('OK');
SetLength(s,0);
// stop program loop
Terminate;
end;
var
Application: Tprog;
begin
Application:=Tprog.Create(nil);
Application.Title:='Hallo';
Application.Run;
Application.Free;
end.
Der Fehler lässt sich (theoretisch) beheben, durch Einbinden der "interfaces" unit
Nur leider kann ich meine konsolen-anwendung dann nicht mehr unter GTK1 compilieren weil anscheinend die Definition {$DEF GTK1} nicht global gesetzt ist und er dadurch bei den compilerswitches versucht, nicht-GTK-funktionen einzubinden
z.b. "gdk_image_unref" in der GTKDebug.pp (ist in einem {$ifndef GTK1} switch !!!)
Komme ich mit Grafiken (jpg laden) auch ohne interfaces aus?
wenn nicht, wie bekomme ich den fehler weg?