Forum: PC-Programmierung Funktionen einer DLL ansprechen


von Timo (Gast)


Lesenswert?

Hallo,

ich will ein I2C-Tiny-USB Modul von Till Harbaum 
(http://www.harbaum.org/till/i2c_tiny_usb/index.shtml) nutzen und unter 
Visual Basic ansprechen - von C hab ich kaum Ahnung..
Jetzt liegt die DLL vor (libusb0.dll), ich weiß welche Funktionen es 
gibt, aber nicht welche ÜBer- bz. Rückgabewerte dazu gehören.

Kann mir jemand erklären, wie ich an diese Info rankomme??

Eine grundlegende C-Beispieldatei liegt bei Till ebenfalls vor, aber 
wenn man C nicht kann, kann man das natürlich nicht nachvollziehen.


Gruß

Timo

von hans (Gast)


Lesenswert?

Hallo Timo,

hier findest du einige Beispiele für Grafik.
Parameterübergabe zur DLL wird hier gut erklärt:

http://www.activevb.de/tutorials/tut_zeichnen/zeichnen.html

Weitere VB-Hilfen gibt es ebenfalls in Forum:
http://www.activevb.de/startseite/index.html

gruß hans

von Timo (Gast)


Lesenswert?

Hallo Hans,

danke für den Hinweis. Jedoch glaube ich, dass mir das nicht weiterhilft 
- das Problem ist nicht, wie man eine DLL und deren Funktionen aufruft, 
sondern woher ich zu einer gegebenen DLL den Aufbau der Funktionen 
bekomme.


Timo

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Was spricht dagegen, die Dokumentation von libusb anzusehen?

von Timo (Gast)


Lesenswert?

Hallo,

prinzipiell nicht schlecht die Idee mit dem Link.
Aber die Doku ist doch sehr - sagen wir mal - spartanisch. Entweder bin 
ich auf der falschen Seite gelandet, oder die Entwickler sind keine Fans 
von Dokus; aber bitte überzeuge Dich selbst und sag, dass ich unrecht 
habe....
"[..] Documentation
There is no documentation available yet, accept this page. As 
libusb-win32 is fully API compatible to libusb, the API documentation 
from the main libusb project site at http://libusb.sourceforge.net can 
be used. [..] "
=>http://libusb-win32.sourceforge.net/#documentation

und dann die "Doku" zu der API
=> http://libusb.sourceforge.net/doc/


Gruß

Timo

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tja, das aber ist die Dokumentation. So ist libusb halt. Du kannst Dir 
sicherlich auch noch ein paar Beispielprojekte ansehen, die libusb 
einsetzen, aber die dürften kaum in VB geschrieben sein.

von Simon K. (simon) Benutzerseite


Lesenswert?

Spartanisch? Nur weils keine Clicki-Bunti Webseite ist?

Hier gibts auch Basic Examples, die zumindest zeigen, welche Funktionen 
man aufrufen soll:
http://libusb.sourceforge.net/doc/examples-code.html

Ich frage mich aber gerade, wie du an die "Datentypen" kommen willst, 
die in dem Header-File zur libusb definiert sind? #include funktioniert 
ja leider nur in C/C++ und nicht in Visual Basic ;)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Naja, die Headerdatei muss sich so ein VB-Programmierer halt ansehen und 
die darin enthaltenen Funktionen nachbilden. Wie das geht, dürfte in 
unzähligen "Wie-benutze-ich-eine-DLL-mit-VB"-Tutorials beschrieben sein.

von Simon K. (simon) Benutzerseite


Lesenswert?

Rufus t. Firefly wrote:
> Naja, die Headerdatei muss sich so ein VB-Programmierer halt ansehen und
> die darin enthaltenen Funktionen nachbilden. Wie das geht, dürfte in
> unzähligen "Wie-benutze-ich-eine-DLL-mit-VB"-Tutorials beschrieben sein.

Na Prost Mahlzeit. Umständlicher bitte!

von Simon K. (simon) Benutzerseite


Lesenswert?

Sieht wohl so oder so etwas schlecht aus mit VB.
http://osdir.com/ml/lib.libusb.devel.windows/2005-01/msg00055.html
http://osdir.com/ml/lib.libusb.devel.windows/2005-01/msg00020.html
1
No, if you don't use the right calling convention then your program will
2
crash sooner or later.
3
The difference between stdcall and cdecl functions is the way the stack gets
4
cleaned up after the function call finished (function paramters are usually
5
passed via the stack). If you are calling a stdcall function then the callee, 
6
the
7
function, cleans up the stack. When calling a cdecl function the caller is 
8
reponsible
9
for doing this. 
10
11
And here comes the problem: I just searched the web regarding VB6 and
12
cdecl functions and it seems as if you cannot use these functions in VB6.
13
14
To overcome this problem I could add sdcall aliases for all functions
15
to the DLL. If you would like to have this feature, please let me know.

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.