Frage zu *.decls, was ist was?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

D²O

Betreff: Frage zu *.decls, was ist was?

BeitragSa, Sep 27, 2008 14:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, irgendwie steige ich da nicht durch, bzw. es will nicht in meinen Kopf Wink

Ich habe folgendes.
Eine dll, go_md5.dll.
In ihr ist die Funktion GetMD5$(l_in$)
Ihr übergibt man einen String und gibt als einen Return einen String zurück.

und eine go_md5.decls
in ihr steht:


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

GetMD5$(l_in$): "GetMD5"


Das ganze funktioniert auch, ich kann einen Dateinamen übergeben und erhalte ein MD5 String zurück.
Nur was ist in der decls was?

1. GetMD5$(l_in$)
2. GetMD5

Was ist der Name der Funktion und was ist der Funktionsname den ich selber im Code aufrufe?
Kann ich den Namen selbst bestimmen/umbenenen , oder muss er gleich wie der Name der Funktion in der dll sein?
Bzw. was hat das zu punkt 2 zu bedeuten, kann man das auch weglasen?

Vielen Dank im voraus.
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

the FR3AK

BeitragSa, Sep 27, 2008 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz einfach:

Durch die *.decls Datei weiss B3D was an die DLL übergeben muss.


Zitat:
.lib "go_md5.dll"

GetMD5$(l_in$): "GetMD5"


Das .lib "go_md5.dll" bedeutet das es in dieser Lib die Folgenden Funktionen gibt die B3D ansprechen kann.

GetMD5$(l_in$) Das ist die Funktion so wie du sie schreiben musst (wie du sehen kannst musst du einen String als Parameter übergeben)

: "GetMD5" So heisst die Funktion in der .dll Datei an die B3D die Parameter dann übergibt.


Verstanden?Very Happy
 

D²O

BeitragSa, Sep 27, 2008 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke the FR3AK Smile

Ich war mir nicht sicher und mein gedanke ging daran das es geau umgekert ist Embarassed

Also könnte ich aus dem hier
Code: [AUSKLAPPEN]

.lib "go_md5.dll"

GetMD5$(l_in$): "GetMD5"


das hier machen

Code: [AUSKLAPPEN]

.lib "go_md5.dll"

GetMD5_und _ich _moechte_es_so$(l_in$): "GetMD5"


Mich verwirrte das "()" hier, die functions klammer.
So reicht es eben aus das BB weis das es die funktion "GetMD5" gibt,
aber erstmal egal ist was man übergibt, bzw. was zurückgegeben wird.

Und nur mit dem ersten Punkt bekannt gemacht wird was übergeben und zurück geliefert wird und mit
was für einem Funktionsnamen es angesteuert werden muss.

Ich habe zwar BB/BM schon sehr lange nur mit sowas habe ich mich noch nie so beschäftigt.

Danke nochmals und Gruss vom Bodensee
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;
 

Heiko

BeitragSa, Sep 27, 2008 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
der wert in der klammer wird an die function in der dll übergeben.

flona

BeitragSa, Sep 27, 2008 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Code: [AUSKLAPPEN]
.lib "go_md5.dll"

GetMD5_und _ich _moechte_es_so$(l_in$): "GetMD5"

so geht es nicht, aber so:
Code: [AUSKLAPPEN]
GetMD5_und_ich_moechte_es_so$(l_in$): "GetMD5"

Es dürfen nämlich keine Leerzeichen im Namen sein Wink

Die Parameter und der Rückgabetyp sind dazu da, dass BB überprüfen kann ob auch alle nötigen Parameter übergeben wurden. Dann muss BB evtl. noch Typen umwandeln und beim Rückgabewert ist es genauso.
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit
 

D²O

BeitragSa, Sep 27, 2008 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Das leerzeichen war ein Tipp fehler Wink
Trotzdem Danke:)
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group