DLL vorhanden ?

DLL vorhanden ?

Beitragvon Mathias » 29. Jul 2016, 19:03 DLL vorhanden ?

Kann ich das irgendwie abfangen, wen eine DLL nicht vorhanden ist ?

Wen ich jetzt mein Programm starte, kommt gnadenlos dieser Fehler:
Code: Alles auswählen
Die Anwendung konnte nicht gestartet werden, weil blabla.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben. 


Code: Alles auswählen
  function Test(l:Integer): Integer; stdcall; external 'blabla.dll';
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Test(123);
end


Ich würde den Zustand gerne in einer Variable speichern und zu Laufzeit die Aufrufe der DLL unterbinden.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3193
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Thomas B. » 29. Jul 2016, 19:46 Re: DLL vorhanden ?

nicht statisch die DLL beim Programmstart laden lassen, sondern das im Programmablauf selbst erledigen, siehe z.B.
https://de.wikibooks.org/wiki/Programmierkurs:_Delphi:_DLL-Programmierung#Dynamisches_Einbinden
http://www.lazarusforum.de/viewtopic.php?f=55&t=3292
Thomas B.
 
Beiträge: 89
Registriert: 2. Nov 2007, 13:32
Wohnort: Ulm
OS, Lazarus, FPC: Win (L 1.0 FPC 2.6.0) | 
CPU-Target: 32Bit
Nach oben

Beitragvon Mathias » 29. Jul 2016, 20:23 Re: DLL vorhanden ?

Danke, so klappt es. :D

Ich habe eine fremde *.inc, bei der alle Funktionen der DLL statisch geladen werden.
Da ich aber zum Glück nur 6 Funktionen davon brauche, habe ich diese rauskopiert und abgeändert.
Ein paar Konstanten hatte es auch noch, aber da hilft Ctrl-C, Ctrl-V. :wink:

Das muss ich mir merken, falls ich selbst mal selbst was von einer Librray brauche, immer dynamisch einbinden, :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3193
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Warf » 30. Jul 2016, 11:36 Re: DLL vorhanden ?

Du solltest wenn möglich versuchen die DLL's immer mit der Anwendung mitzuliefern, denn sonst kann es vorkommen, das die dll auf dem zielrechner die falsche version hat und sich z.b. Die funktionssignatur geändert hat, und dann funktioniert bei dir auch nichts mehr.
Warf
 
Beiträge: 616
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon Mathias » 31. Jul 2016, 16:05 Re: DLL vorhanden ?

Eigentlich bin ich überhaupt kein Freund von DLLs, aber für eine Messkarte musste ich notgedrungen auf eine DLL zugreifen, welcher der Hersteller zur Verfügung stellt.
Es ist natürlich mühsam, wen man auf Hersteller-Treiber angewiesen ist.
Da ist ein Arduino viel sympatischer, da muss man eine Zugriff auf ein COM-Port haben und somit ist man unabhängig, auch Betriebssystem-Seitig.
Vorausgesetzt, man weis die Befehle, die man übergeben muss. :wink:

Wen ich selbst ein grosses Project entwickeln würde, dann würde ich natürlich die Bibliotheken mitliefern.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3193
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Windows



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried