.decls selber schreiben - .DLL Funktionen richtig zuordnen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

N0X

Betreff: .decls selber schreiben - .DLL Funktionen richtig zuordnen

BeitragSo, Aug 08, 2010 0:05
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Aug 08, 2010 10:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Das sieht nach einer C++ dll aus, und die funktionen deser kann man garnicht über eine Userlib nutzen.

N0X

BeitragSo, Aug 08, 2010 10:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, ok..
Geht das denn über CallDLL?

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Badudel

BeitragSo, Aug 08, 2010 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
[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

BeitragMi, Aug 11, 2010 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
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.. Wink

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group