.decls selber schreiben - .DLL Funktionen richtig zuordnen
Übersicht

![]() |
N0XBetreff: .decls selber schreiben - .DLL Funktionen richtig zuordnen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey!
Ich versuche gerade eine Userlib für die sapi.dll zu schreiben, wird n schweres Stück Arbeit... Ich habe nur noch nie eine Userlib geschrieben... Müssen die Befehle in der gleichen Reihenfolge wie in der DLL sein? Müssen sie exakt so wie in der DLL geschrieben sein? Und wie schreibe ich einen Befehl wie z.B. (aus DLL) "ISpLexicon::GetWords" in die Userlib? Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das sieht nach einer C++ dll aus, und die funktionen deser kann man garnicht über eine Userlib nutzen. | ||
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, ok..
Geht das denn über CallDLL ![]() Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
Badudel |
![]() Antworten mit Zitat ![]() |
---|---|---|
[quote=Hilfe von CallDLL]Es können nicht alle DLLs einfach so benutzt werden. Die DLLs müssen speziell für BlitzBasic entwickelt werden. BlitzBasic übergibt/empfängt nur den Pointer eines Speicherfeldes und die Länge in Byte. Die DLL Funktion muss diese Daten dann verarbeiten können. Aus diesem einfachen Grund können Standard DLLs nicht benutzt werden, da die meistens andere Eingaben erwarten.
[/quote] Du musst genau so einen Wrapper bauen. Dafür brauchst du Kenntnisse in C. Ein Wrapper gibt dann die Befehle an die Zieldll weiter. Du brauchst son Ding immer, wenn Blitzbasic bestimmte Datenstrukturen nicht beherrscht. Gruß |
||
Wir werden dem Schwein schon schlachten, auch wenn ihm quiekt.
Zum Teufel mit das Grammatik! |
Blitzjockey |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dass stimmt so aber nicht. Es sehr wohl möglich kompilierte Win-DLL's direkt über .decls einzubinden.
Auch wenn BB da ziemlich limitiert ist, man bindet die meiste hier im Forum benutzte .DLL's auch direkt über einen Userlib ein. Ich selbst habe auch schon treiber unter B3D benutzt, ohne dafür einen Wrapper zu schreiben. Allerdings muss man dafür einiges beachten (es stimmt schon das BB eine Pointer nicht direkt benutzen kann) was aber in den Userlib-ordner in "Userlibs.txt" beschrieben ist. Wenn ein Program aber größenteils auf Pointer u.ä. verzichtet, kann man ohne weiteres einbinden. Referenz-adressen kann man z.B. über INT-variabelen weiterleiten. Oder ich verstehe Eure Situation komplett falsch, dann könnt ihr mein Beitrag natürlich gleich vergessen.. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group