Forum: PC-Programmierung TinyCan API mit Visual Basic nutzen


von Volker (Gast)


Lesenswert?

Hallo zusammen,

ich habe seit kurzem ein TinyCan Modul und würde dieses gerne über VB 
nutzen. Wenn ich die einzelnen API Funktionen als Funktion in VB 
deklariere (z.B.
1
Declare Function CanDeviceOpen Lib "mhstcan1.dll" (ByVal ComPort As String, ByVal ComPortBaudRate As String) As Byte
) dann klappt das auch schon ganz gut. Zumindest erhalte ich die 
erwarteten Rückgabewerte :-)

Nun hänge ich allerdings an einer Stelle, an der ich nicht mehr weiter 
komme und ich mir nicht sicher bin, ob der Ansatz über VB zielführend 
ist. Es gibt Funktionen der API, die einen Pointer erwarten, bzw. einen 
Pointer zurück liefern (z.B.
1
int CanTransmit(unsigned short index, struct TCanMsg *msg, int count)
).

Wie kann ich das in VB lösen? Bin für jede Hilfe dankbar!

Viele Grüße

Volker

von Alexander K. (elektronikus)


Lesenswert?

Hallo,

einfach mal nach "VarPtr" googeln. Es handelt sich hierbei um eine 
undokumentierte Funktion von VB/VBA, welche die Adresse einer Variablen 
zurückliefert. Für die umgekehrte Richtung wird es allerdings etwas 
schwieriger ...

von Sven P. (Gast)


Lesenswert?

Wie isses denn mit ByRef ? Und: Achte drauf, was VB beim Aufruf von 
DLL-Funktionen schon automatisch umwandelt!

von christian (Gast)


Lesenswert?

Hallo Volker,
habe den Tiny Can unter VB jetzt soweit das er CanNachrichten sendet. 
Allerdings sendet er keine Daten mit, sind immer null.
Hast du es bei deiner Software geschaft?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.