Seite 1 von 1

Probleme bei der Übergabe eine DIM Variable an eine DLL Fkt

Verfasst: 04.06.2006 11:06
von mpz
Hallo Leute,

ich habe folgendes Problem. Ich habe gerade einen PIC Microcontroller programmiert, der wie wild Daten sendet. Über eine mcHID.dll Bibliothek kann ich jetzt Informationen abfragen (Gerätetyp, Hersteller, Seriennummer etc.). Nur das Wichtigste, die Übergabe der Daten funktioniert nicht. Mein DatenPuffer ist und bleibt leer. Es ist vermutlich die Übergabe der Daten die falsch läuft. Hat jemand einen Tipp für mich?

Gruß Michael

Code: Alles auswählen

----Visual Basic Sourcecode

Declare Function hidRead Lib "mcHID.dll" Alias "Read" (ByVal pHandle As Long, ByRef pData As Byte) As Boolean

Private Const BufferInSize = 8
Dim BufferIn(0 to BufferInSize) as byte

hidRead(pHandle, BufferIn(0))

Hier jetzt mein Werk

Code: Alles auswählen


----Purebasic Sourcecode

hidRead = GetProcAddress_(mcHID_dll,"Read")

ProcedureDLL  hidRead (pHandle.l,pData.b)
    ProcedureReturn CallFunctionFast( hidRead, pHandle,pData)
EndProcedure

Global Dim BufferIn.b(8)

hidRead(DeviceHandle, @BufferIn(0))

; BufferIn(0-8) bleibt leer

; leider auch bei:  

hidRead(DeviceHandle, BufferIn(0))
; BufferIn(0-8) bleibt leer


Verfasst: 04.06.2006 11:23
von ts-soft
So in etwas sollte es gehen:

Code: Alles auswählen

Prototype hidRead(pHandle.l, *pData.b)

Define mcHID_DLL.l = OpenLibrary(#PB_Any, "mcHID.dll")

If mcHID_DLL
  Global hidRead.hidRead = GetFunction(mcHID_DLL, "hidRead")
EndIf

Global Dim BufferIn.b(8)

hidRead(DeviceHandle, @BufferIn())

Verfasst: 04.06.2006 13:53
von mpz
Vielen Dank,

ich habe meine ganzen Bibliothekszugriffe geändert und schon flutscht es wie geschmiert. Jetzt kann ich einen PIC 18F2550 an einem USB Port verwenden. Das Senden und Auslesen von Daten funktioniert jetzt Bestens....

Gruß Michael

Verfasst: 04.06.2006 13:56
von ts-soft
Notfalls wäre ich rumgekommen, ist ja nicht so weit :wink: