AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein DLL mit CallBack in Delphi importieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL mit CallBack in Delphi importieren

Ein Thema von Metschu · begonnen am 15. Dez 2013 · letzter Beitrag vom 20. Dez 2013
 
Metschu

Registriert seit: 31. Dez 2006
151 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

DLL mit CallBack in Delphi importieren

  Alt 15. Dez 2013, 14:05
Hallo zusammen,

ich muss eine in C geschriebene DLL in Delphi benutzen.
Mit welcher Software kann man sich die DLL denn Anschauen? Wenn ich diese mit Delphi XE2 öffne wird mir nichts angezeigt.
Die Doku zu der DLL hab ich im PDF-Format bekommen.

Mein derzeitiges Problem ist, das die CallBack Funktionen aus der DLL nicht gefunden / geladen werden.
oder mache ich einen Denkfehler?
Der Name der Funktion "UcanCallbackFkt" steht genau so in der Dokumentation (Auszug im Anhang)

Kurzer Auszug aus meinem dem Quelltext:
Delphi-Quellcode:
[...]
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
[...]
  private
    { Private-Deklarationen }

  public
    { Public-Deklarationen }

  Type
   TCANUSB_SWVersion = function :dWord; StdCall;
   TCANUSB_FWVersion = function :dWord; stdCall;
   TCANUSB_CallBack = Procedure (UcanHandle_P: THandle; out bEvent_p:Byte); cdecl;
   TCANUSB_InitHardWare = function (out UcanHandle_p : THandle; bDeviceNr_P:Byte; CallCackFKT: TCANUSB_CallBack): Byte; stdCall;
  var
   CANUSB_DLL : HModule;
   CANUSB_SWVersion : TCANUSB_SWVersion;
   CANUSB_FWVersion : TCANUSB_FWVersion;
   CANUSB_CallBack : TCANUSB_CallBack;
   CANUSB_InitHardWare : TCANUSB_InitHardWare;
  end;

var
  Form1: TForm1;

const
  USBCANdll = 'USBcan32.dll';
  Fehler: array[1..10] of String = (
                              {00}   'Erfolg',
                              {01}   'Fehler 1',
                              {02}   'Zu viele Module',
                              {03}   '4',
                              {04}   '5',
                              {05}   'Kein USB - CAN Modul gefunden',
                              {...}   '8','7','9','10');
implementation

{$R *.dfm}


Function tform1.Load_CANUSB_DLL:Boolean;
begin;
 result := False;
 CANUSB_Dll := LoadLibrary(PChar('USBCAN32.dll'));
 if CANUSB_DLL <> 0 then
  begin
   @CANUSB_SWVersion := GetProcAddress(CANUSB_DLL, 'UcanGetVersion');
   @CANUSB_FWVersion := GetProcAddress(CANUSB_DLL, 'UcanGetFwVersion');
   @CANUSB_InitHardware := GetProcAddress(CANUSB_DLL, 'UcanInitHardware');
   @CANUSB_CallBack := GetProcAddress(CANUSB_DLL, 'UcanCallbackFkt');
   result:=true;

   if (@CANUSB_SWVersion=NIL)
    then Showmessage('Fehler SWVersion');
   if (@CANUSB_FWVersion=NIL)
    then Showmessage('Fehler FWVersion');

   if (@CANUSB_CallBack =NIL)
    then Showmessage('Fehler CallBack'); // <- hier bekomme ich die Fehlermeldung angezeigt. Funktion also nicht ordnungsgemäß geladen?

   if (@CANUSB_InitHardWare=NIL)
    then Showmessage('Fehler InitHW');
  end
  else MessageDlg('Fehler beim laden der DLL',mtError,[mbok],0);
end;

procedure TForm1.DLLladen(Sender: TObject);
var d:dWord;
    s:Integer;
    thd:THandle;
begin
 if Load_CANUSB_dll
  then label1.Caption:='DLL Geladen'
  else label1.Caption:=' *** KEINE DLL geladen ***'
end;

[...]
end.
Danke schonmal.

Gruß

Torsten
Angehängte Dateien
Dateityp: pdf Auszug Doku DLL.pdf (139,5 KB, 14x aufgerufen)
Torsten
  Mit Zitat antworten Zitat
 


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 01:43 Uhr.
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