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