externe DLL benutzen: HANDLE

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
gbalzarek
Beiträge: 38
Registriert: 06.07.2006 22:18
Wohnort: D-Südwest

externe DLL benutzen: HANDLE

Beitrag von gbalzarek »

Hallo Leute,

ich habe ein Prototypen-Problem.
Bisher benutze ich externe DLLs in dieser Weise (PB4.51):

Code: Alles auswählen

Prototype.i pReadBytes551014 (adresse.i)
...
ReadBytes551014.pReadBytes551014 = GetFunction (0, "ReadBytes551014")
...
test=ReadBytes551014(modadr)
Das funktioniert auch einwandfrei.

Jetzt möchte ich aber ein Programm schreiben, das einen Mikrocontroller von Microchip mit USB-Schnittstelle benutzt.
Den Treiber und die DLL stellt Microchip zum Download bereit. In der Header-Datei sind verschiedene Funktionsprototypen angegeben, die ich übernehmen will:

Code: Alles auswählen

extern "C" __declspec(dllexport)
HANDLE MPUSBOpen(DWORD instance,    // Input
                 PCHAR pVID_PID,    // Input
                 PCHAR pEP,         // Input
                 DWORD dwDir,       // Input
                 DWORD dwReserved); // Input <Future Use>

extern "C" __declspec(dllexport)
DWORD MPUSBRead(HANDLE handle,              // Input
                PVOID pData,                // Output
                DWORD dwLen,                // Input
                PDWORD pLength,             // Output
                DWORD dwMilliseconds);      // Input
Mein Problem ist: Im Source, der mitgegeben wurde, finde ich "HANDLE" nicht.
Die DLL wurde mit "Borland C++ Builder 6" erzeugt, was ich nicht habe. Vermutlich wird "HANDLE" dort in einer Header-Datei beschrieben. Im Netz habe ich leider nichts brauchbares gefunden.

Kennt das hier jemand und kann mir weiterhelfen?
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: externe DLL benutzen: HANDLE

Beitrag von Derren »

Laut der Headerdatei ist doch Handle der Rückgabewert von MPUSBOpen()
Signatur und so
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: externe DLL benutzen: HANDLE

Beitrag von ts-soft »

Und bitte drauf achten, auch PrototypeC zu nutzen!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
gbalzarek
Beiträge: 38
Registriert: 06.07.2006 22:18
Wohnort: D-Südwest

Re: externe DLL benutzen: HANDLE

Beitrag von gbalzarek »

@Derren: das ist richtig.

@ts-soft: Danke für den Hinweis.

@all: hat keiner mehr Borland Builder 6 ???
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: externe DLL benutzen: HANDLE

Beitrag von DarkDragon »

typedef PVOID HANDLE: http://msdn.microsoft.com/en-us/library ... s.85).aspx
Nimm .i dafür (also den Datentyp Integer in PureBasic) oder eben einen Pointer, was in PB demselben Typ entspricht.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
gbalzarek
Beiträge: 38
Registriert: 06.07.2006 22:18
Wohnort: D-Südwest

Re: externe DLL benutzen: HANDLE

Beitrag von gbalzarek »

Danke für den Hinweis auf die Integer-Variable. Funktioniert super.
Antworten