Einzelnen Beitrag anzeigen

wschrabi

Registriert seit: 16. Jan 2005
448 Beiträge
 
#6

AW: C++ DLL in Delphi einbinden

  Alt 21. Jul 2011, 10:38
Hallo,
ich möchte stat eine DLL einbinden. Doch in der h Datei ist die Fn definiert als:

SLAB_HID_DEVICE_API DWORD WINAPI HidDevice_GetNumHidDevices(WORD vid, WORD pid);

als WORD sind die Parameter. Doch wie muss ich beim Aufruf den Parameter übergeben?

ok diese Problem hab ich mit einer Hex Umrechnung gemacht. (Sieh unten)

Aber jetzt das nächste:
in der h datei ist:

typedef void* HID_DEVICE;

wie muss ich jetzt diesen Type in mein delphi prg importieren dass ich folgendes
C-aquivalient machen kann?

HID_DEVICE m_hid;

BYTE status = HidDevice_Open(&m_hid, devNum-1, VID, PID);





Mein Code:
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

const
  DLLNAME = 'SLABHIDDevice.dll';

  function HidDevice_GetNumHidDevices(VID: Integer; PID: Integer): integer; stdcall; external DLLNAME ;


type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    function Hex2Int(hex: String): Integer;

  end;

var
  Form1: TForm1;

implementation


{$R *.dfm}
const
  VID = '152A';
  PID = '8261';

var
  devNum: integer;


function TForm1.Hex2Int(hex: String): Integer;
var
i,count: Integer;
begin
val('$'+hex,i,count);
if count = 0 then result:= i
else result := -1;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  devNum := HidDevice_GetNumHidDevices(Hex2Int(VID), Hex2Int(PID));
  ShowMessage('DeviceID = '+IntToStr(devNum));

  if devNum <> 0 then
    begin
    ......


    end;
end;

end

Geändert von wschrabi (21. Jul 2011 um 11:15 Uhr)
  Mit Zitat antworten Zitat