AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschiedliche DLLs einbinden

Ein Thema von FBrust · begonnen am 24. Mai 2004 · letzter Beitrag vom 24. Mai 2004
Antwort Antwort
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#1

Unterschiedliche DLLs einbinden

  Alt 24. Mai 2004, 15:12
Hallo,

in meinem Programm gibt es einen Bereich, den ich gerne in eine DLL auslagern möchte. Allerdings brauche ich je nach Niederlassung unterschiedliche DLLs, bei denen die Funktionen unterschiedliche Berechnungen durchführen (allerdings innerhalb des Programms gleiche Namen haben, d. h. die Funktion Auswertung() läuft in der einen DLL anders ab als in der anderen).

Nun möchte ich aber nicht alle DLLs mitliefern, sondern nur die DLL, die in der jeweiligen Niederlassung benötigt wird. Ich dachte daher, dem Programm eine INI-Datei mitzugegeben, in der der
Name der zu verwendenden INI-Datei hinterlegt und bei Programmstart eingelesen wird.

Allerdings stolpere ich schon über den Namen der DLL als Variable zu laden:

Delphi-Quellcode:
function DLLTest(): integer;
   external strDLL;
ergibt den Fehler "strDLL: unbekannter Bezeichner", obwohl strDLL als private in der Unit deklariert ist. Geht sowas überhaupt?

Grüße

Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Unterschiedliche DLLs einbinden

  Alt 24. Mai 2004, 15:20
Hallo,

noch eine Anmerkung:

Nachdem ich die Definition von strDLL vom private- in den var-Bereich der Unit verschoben habe, erhielt ich die Fehlermeldung "Konstantenausdruck erwartet", scheint also nicht zu gehen, aber vielleicht hat ja einer von Euch eine Idee....


Grüße
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Benutzerbild von CenBells
CenBells

Registriert seit: 30. Mär 2003
Ort: Kiel urspr. Lübeck
176 Beiträge
 
Delphi 7 Professional
 
#3

Re: Unterschiedliche DLLs einbinden

  Alt 24. Mai 2004, 15:37
hallo,

der name der dll darf nicht im uses teil auftauchen sonst bindest du den teil wieder statisch ein.

Dein Code muss so heißen
Delphi-Quellcode:
function DLLTest(): integer;
   external 'Pfad zu deiner dll mit dem dateinamen ( kann auch ein relativer pfad sein)';
Gruß
Ken
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Unterschiedliche DLLs einbinden

  Alt 24. Mai 2004, 16:36
Hallo,

also muss ich den Namen der DLL fest angeben und kann ihn nicht aus einer Variable entnehmen, oder?

Gruß

Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: Unterschiedliche DLLs einbinden

  Alt 24. Mai 2004, 16:49
wenn du sie dynamisch lädst geht das
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#6

Re: Unterschiedliche DLLs einbinden

  Alt 24. Mai 2004, 17:22
das geht so:
Delphi-Quellcode:
type
  TInstallHook = function(Hwnd: THandle): Boolean; stdcall;
  TUninstallHook = function: Boolean; stdcall;

var
  InstallHook: TInstallHook;
  UninstallHook: TUninstallHook;
  lib: Cardinal;

begin
  lib := LoadLibrary('keyboardhook.dll');
  if lib <> INVALID_HANDLE_VALUE then begin
    InstallHook := GetProcAddress(lib, 'InstallHook');
    UnInstallHook := GetProcAddress(lib, 'UninstallHook');
  end; // else ERROR
end;
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Unterschiedliche DLLs einbinden

  Alt 24. Mai 2004, 19:54
Hallo,

danke für Eure Antworten, dynamisches Laden ist in diesem Fall wirklich sinnvoller.

Grüße

Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz