mit userlib arbeiten?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Killer999

Betreff: mit userlib arbeiten?

BeitragDi, Jan 03, 2006 9:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich würde gerne die userlib etwas verstehen. Wie die so funktoniert. Denn ich habe vor ein mpq archiv zu verwenden für meine Games. Die dll ist schon geschrieben in Visual Basic. Die dll datei funktoniert auch. Habe das komplette programm fertig ohne BB3D. Will aber nun die dll datei in bb3d einbauen. Will ich sie einbauen kommt immer "user lib function not found."

Muss man in die dll irgend was spezielles einbauen? Meine Visual Basic exe funktoniert. Könnent ihr mir helfen?

x-pressive

BeitragDi, Jan 03, 2006 9:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast sicher die dazugehörige .decls vergessen. Ohne die kann Blitz mit einer .dll noch nicht viel anfangen. Zieh mal irgendeine .decls aus dem userlib-Ordner in einen Texteditor, dann siehst du gleich, wie die aufgebaut sein müssen. Erklärt sich dann eigentlich von selbst.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

Killer999

BeitragDi, Jan 03, 2006 10:36
Antworten mit Zitat
Benutzer-Profile anzeigen
naja geht immer noch nicht.

Ich nehme dann mal ein beispiel von winrar.

Wenn ich nun diese DLL Datei in meine userlib reinkopiere und dann eine decls schreibe sollte winrar archive funktonieren odernicht?

also die commandos zeile heißt bei winrar

unrar datei.rar
also dachte ich mir mach ich folgendes.

Code: [AUSKLAPPEN]
.lib "RarExt.dll"

unrar%(file$) : "unrar"

dies habe ich in die decls reingeschrieben und dann in bb3d so umgewandelt.

Code: [AUSKLAPPEN]
unrar(test.rar)


dann sagt er mir aber" user lib function not found"

BtbN

BeitragDi, Jan 03, 2006 11:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Damit will er dir klar machen, das es die Funkion "unrar" in der DLL nicht ibt, würd ich ma so sagen.
Oder überprüf mal, ob die DLL auch wirklich genau diese Parameter und genau diesesn Return-Type hat.

x-pressive

BeitragDi, Jan 03, 2006 11:21
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Schmeiss die .dll in den selben Ordner, in dem dein Programm liegt (.bb)
2. Erstelle eine .decls-Datei im Ordner "userlibs", die eine Auflistung aller ansprechbaren Funktionen in der .dll enthält (Funktionsnamen, Rückgabetyp der Funktion, alle Parameter der Funktion samt ihrem Datentyp ).

D2006 hat das mal bereits sehr gut erklärt:

Zitat:
Um eine Decls zu einer DLL erstellen zu können, muss man alle Funktionen der DLL mitsamt der Parameter kennen. Der Autor muss sie entsprechend irgendwo aufgelistet haben. Wenn es keine extra für BB erstellte DLL ist, wird man mit Sicherheit auch keine *.decls finden.


Die Funktionen sind NICHT mit Kommandozeilen-Parametern zu verwechseln (wie wahrscheinlich in deinem WinRAR-Beispiel). Es müssen wirklich die internen Funktionsnamen samt ihrer Parameter sein.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

Killer999

BeitragDi, Jan 03, 2006 11:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ok hier mal ein ausschnitt von mpq.dll

dies habe ich in die decls geschrieben

Code: [AUSKLAPPEN]
mOpenMpq%(file$) : "mOpenMpq"


was hat der 1 schritt zu bedeuten.? also mOpenMpq%(file$)

und was hat der zu bedeuten : "mOpenMpq"

am besten bräuchte ich mehr infos zu decls dateien.

Artemis

BeitragDi, Jan 03, 2006 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
also ein decls ist do aufgebaut:
Code: [AUSKLAPPEN]
.lib "DllName.dll"

FunctionsName%(Parameter$, Parameter#):"NameInDerDll"


Die Zeichen (%,$,#) entsprechen den VariablenTypen. Der Funktionsname kann anders sein als der Dll-Funktionsname. Dann muss aber hinter dem Doppelpunkt der richtige NAme stehen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group