www.mikrocontroller.net

Forum: PC-Programmierung Funktionen einer DLL ansprechen

Autor: Timo (Gast)
Datum: 04.07.2008 22:43

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
Autor: hans (Gast)
Datum: 04.07.2008 23:09

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
Autor: Timo (Gast)
Datum: 04.07.2008 23:43

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
Autor: Rufus t. Firefly (rufus) (Moderator)
Datum: 05.07.2008 14:08

Was spricht dagegen, die Dokumentation von libusb anzusehen?
Autor: Timo (Gast)
Datum: 05.07.2008 15:22

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
Autor: Rufus t. Firefly (rufus) (Moderator)
Datum: 05.07.2008 15:26

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.
Autor: Simon K. (simon) Benutzerseite
Datum: 05.07.2008 17:24

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 ;)
Autor: Rufus t. Firefly (rufus) (Moderator)
Datum: 05.07.2008 18:30

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.
Autor: Simon K. (simon) Benutzerseite
Datum: 05.07.2008 21:37

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!
Autor: Simon K. (simon) Benutzerseite
Datum: 05.07.2008 21:39

Sieht wohl so oder so etwas schlecht aus mit VB.
http://osdir.com/ml/lib.libusb.devel.windows/2005-...
http://osdir.com/ml/lib.libusb.devel.windows/2005-...
No, if you don't use the right calling convention then your program will
crash sooner or later.
The difference between stdcall and cdecl functions is the way the stack gets
cleaned up after the function call finished (function paramters are usually
passed via the stack). If you are calling a stdcall function then the callee, 
the
function, cleans up the stack. When calling a cdecl function the caller is 
reponsible
for doing this. 

And here comes the problem: I just searched the web regarding VB6 and
cdecl functions and it seems as if you cannot use these functions in VB6.

To overcome this problem I could add sdcall aliases for all functions
to the DLL. If you would like to have this feature, please let me know.

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net