Einzelnen Beitrag anzeigen

Wal

Registriert seit: 22. Sep 2006
57 Beiträge
 
#13

Re: DLL einbinden octopus.dll

  Alt 25. Jul 2008, 11:16
Da ich mir auch so ein Teil bestellt habe, verfolge ich das hier auch gespannt. Dein Fehler hat nicht's mehr mit der Octopus.dll zu tun sondern mit der libusb.dll. Habe mir mal den Delphi-Wrapper für die libusb.dll angeschaut und festgestellt,das der usb_handle kein integer ist, sondern ein Pointer. siehe Antwort von Omata.
Delphi-Quellcode:
usb_device = packed record
    next,
    prev: pusb_device;
    filename: packed array [0..LIBUSB_PATH_MAX-1] of char;
    bus: pusb_bus;
    descriptor: usb_device_descriptor;
    config: PArray_usb_config_descriptor;

    dev: pointer; // Darwin support
  end;

  usb_bus = packed record
    next,
    prev: pusb_bus;
    dirname: packed array [0..LIBUSB_PATH_MAX-1] of char;
    devices: pusb_device;
    location: longint;
   end;

  // Version information, Windows specific
  pusb_version = ^usb_version;
  usb_version = packed record
    dllmajor,
    dllminor,
    dllmicro,
    dllnano: integer;
    drivermajor,
    driverminor,
    drivermicro,
    drivernano: integer;
  end;

  pusb_dev_handle = pointer; // struct usb_dev_handle;
 // typedef struct usb_dev_handle usb_dev_handle;
Den Delphi-Wrapper findest du hier: Delphi Header für LibUSB

Evtl. bringt dich das weiter.

Wal

P.S.
Luckie hat geschrieben:
Delphi-Quellcode:
function octopus_init(var context: octopus_context): integer; external 'octopus.dll';

function octopus_get_hwdesc(var context: octopus_context; desc: Pchar): Pchar; external 'octopus.dll';

function octopus_open(context: octopus_context): integer; external 'octopus.dll';
Mit octupus_init wird ja der Pointer geholt, deshalb wird das var wichtig sein und mit octupus_open wird der Pointer wieder der Dll mitgeteilt.
Bin noch nicht der Delphifreak, deshalb berichtigt mich falls ich falsch liege.
  Mit Zitat antworten Zitat