[GELÖST] CopyFile in DLL geht nicht

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

[GELÖST] CopyFile in DLL geht nicht

Beitrag von compmgmt »

Ich hätte mal eine Frage. Ich habe eine Art PlugIn-Schnittstelle in meiner Anwendung gemacht. Dies funktioniert soweit. Das Problem ist allerdings in der DLL die ich als PlugIn verwenden möchte. Ich möchte die Funktion CopyFile verwenden, allerdings sagt mir der Compiler das folgendes:

PSMuhr.lpr(6,12) Fatal: Kann Unit fileutil nicht finden verwendet von PSMuhr. Check if package LazUtils is in the dependencies des Projektinspektors.

Ich verstehe das nicht. Wenn ich eine normale Anwendung kompiliere funktioniert es, nur nicht bei einer DLL...

Hier der Quellcode:

Code: Alles auswählen

 library PSMuhr;
 
{$mode objfpc}{$H+}
 
uses
  Classes, fileutil;
 
function StartPlugin(strUebergabe: string): PChar; stdcall;
var
  hour: String;
  minute: String;
begin
  hour := Copy(TimeToStr(now), 1, 2);
  minute := Copy(TimeToStr(now), 4, 2);
  if FileExists(ExtractFilePath(ParamStr(0)) + 'PSMuhr/' + hour + '.bmp') then
    CopyFile(PChar(ExtractFilePath(ParamStr(0)) + 'PSMuhr/' + hour + '.bmp'), PChar(ExtractFilePath(ParamStr(0)) + 'PSMuhr/CurrentHour.bmp'), false);
  if FileExists(ExtractFilePath(ParamStr(0)) + 'PSMuhr/' + minute + '.bmp') then
    CopyFile(PChar(ExtractFilePath(ParamStr(0)) + 'PSMuhr/' + minute + '.bmp'), PChar(ExtractFilePath(ParamStr(0)) + 'PSMuhr/CurrentMinute.bmp'), false);
  Result := '';
end;
 
exports
  StartPlugin;
 
begin
end.
Hat jemand eine Ahnung wieso das nicht funktioniert?
Vielen Dank für eine Antwort im Vorraus.
Mit freundlichen Grüßen
compmgmgt
Zuletzt geändert von compmgmt am So 6. Dez 2015, 12:03, insgesamt 1-mal geändert.

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: CopyFile in DLL geht nicht

Beitrag von Michl »

Du musst dazu die Abhängigkeit einfügen:

Projekt -> Projektinspektor... -> Button (+ / Hinzuf. >>) -> Neue Anforderung -> Package Name -> LazUtils

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: CopyFile in DLL geht nicht

Beitrag von compmgmt »

Michl hat geschrieben:Du musst dazu die Abhängigkeit einfügen:

Projekt -> Projektinspektor... -> Button (+ / Hinzuf. >>) -> Neue Anforderung -> Package Name -> LazUtils
Vielen Dank. Da hab ich wieder was gelernt :D

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

Antworten