Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   LoadLibrary DLL Laden (https://www.delphipraxis.net/174792-loadlibrary-dll-laden.html)

Alterauge 10. Mai 2013 09:34

LoadLibrary DLL Laden
 
Hallo,
möchte gerne eine DLL laden und eine Rückmeldung
bekommen!

Delphi-Quellcode:
procedure ImportDLL;
var
  hDLL: THandle;
  sDLLPath: string;
begin
  sDLLPath := ExtractFileDir ('C:\OESoft\matrix32.dll');
  hDLL := LoadLibrary(sDLLPath); // hier ist der Fehler ! [DCC Fehler] Unit1.pas(192): E2010 Inkompatible Typen: 'string' und 'PWideChar'
  if hDLL = 0 then begin
    ShowMessage('DLL konnte nicht geladen werden.');
  end else begin

 end;
end;
Was soll am String falsch sein ?

Union 10. Mai 2013 09:35

AW: LoadLibrary DLL Laden
 
Erstens musst Du den vollen Dateinamen angeben und nicht nur das Verzeichnis. Und der Parameter ist PChar.

Morphie 10. Mai 2013 09:38

AW: LoadLibrary DLL Laden
 
LoadLibrary erwartet keinen String, sondern ein PWideChar. Steht doch so in der Fehlermeldung ;-)

Alterauge 10. Mai 2013 09:49

AW: LoadLibrary DLL Laden
 
Mit vollen Dateinamen meinst Du :

Delphi-Quellcode:
 sDLLPath := ExtractFileDir ('C:\OESoft\matrix32.dll')+ 'matrix32.dll';


PWideChar müssste wie aussehen?

Morphie 10. Mai 2013 09:54

AW: LoadLibrary DLL Laden
 
Such dir was aus...
Delphi-Quellcode:
procedure ImportDLL;
var
  hDLL: THandle;
  sDLLPath: string;
begin
  sDLLPath := 'C:\OESoft\matrix32.dll';
  hDLL := LoadLibrary(PWideChar(sDLLPath));
  if hDLL = 0 then
    ShowMessage('DLL konnte nicht geladen werden.')
  else
    ShowMessage('Alles ist Tutti!');
end;
Delphi-Quellcode:
procedure ImportDLL;
var
  hDLL: THandle;
begin
  hDLL := LoadLibrary('C:\OESoft\matrix32.dll');
  if hDLL = 0 then
    ShowMessage('DLL konnte nicht geladen werden.')
  else
    ShowMessage('Alles ist Tutti!');
end;
Delphi-Quellcode:
procedure ImportDLL;
var
  hDLL: THandle;
  sDLLPath: PWideChar;
begin
  sDLLPath := 'C:\OESoft\matrix32.dll';
  hDLL := LoadLibrary(sDLLPath);
  if hDLL = 0 then
    ShowMessage('DLL konnte nicht geladen werden.')
  else
    ShowMessage('Alles ist Tutti!');
end;

Alterauge 10. Mai 2013 09:59

AW: LoadLibrary DLL Laden
 
Hallo Morphie,
erstmal vielen Dank für Deine schnelle Hilfe!

Habe jetzt nur noch ein Problem, bekomme keine Meldung zurück?

Delphi-Quellcode:
 ShowMessage('DLL konnte nicht geladen werden.')
  else
    ShowMessage('Alles ist Tutti!');

Morphie 10. Mai 2013 10:01

AW: LoadLibrary DLL Laden
 
Wie du bekommst keine Meldung zurück? Wo rufst du die Prozedur denn auf?
Zeig am besten mal die komplette Unit, in der du die DLL aufrufen willst.

Der schöne Günther 10. Mai 2013 10:03

AW: LoadLibrary DLL Laden
 
Ich wieß nicht, wie du deine Prozedur aufrufst, aber funktioniert ein bedingungsloses ShowMessage() am Anfang überhaupt?

Alterauge 10. Mai 2013 10:06

AW: LoadLibrary DLL Laden
 
Hallo Morphie,
ist das erstemal, dass ich eine DLL einbinden möchte! :-(

Das war alles an Quelltext bezüglich DLL, habe bestimmt was vergessen oder?

Hallo Günther,
ob eine ShowMessage am Anfang überhaupt funktioniert, weiß ich auch nicht?

Morphie 10. Mai 2013 10:08

AW: LoadLibrary DLL Laden
 
Du musst doch irgendwie die Prozedur "ImportDLL" aufrufen...
z.B. wenn du auf einen Button klickst oder so?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz