 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Findus
Anmeldungsdatum: 14.04.2009 Beiträge: 4
|
Verfasst am: 05.03.2010, 03:23 Titel: Code von PureBasic nach Freebasic umschreiben |
|
|
Hallo,
ich habe eine Vorlage in PureBasic, die ich gerne nach Freebasic umschreiben würde.
Unter anderem finde ich in dem Pure-Code folgende Code-teile:
Code: | Prototype.l TestCallback(FuncName$, Para$ = " ", ParaLen.l = -1, Flags.l = 0, ReturnString$ = " ")
Global TestCall.TestCallback
:
:
Returnvalue = TestCall( "TestFuncName", TestPara$, -1, Flags, ReturnString )
:
:
Returnvalue = TestCall(TestName$)
|
Auszug aus der PureBasic-Hilfe:
...Prototype ermöglicht das Deklarieren eines Typs, welcher eine Funktion abbildet (englisch "mapped"). Dies ist nützlich bei der Verwendung mit einer Variable, um einen Funktionszeiger zu erstellen (der Variablen-Wert wird die Adresse der aufzurufenden Funktion sein, und kann auf Wunsch verändert werden).
...Die letzten Parameter können einen Standard-Wert (muss ein konstanter Ausdruck sein) haben. Wenn also diese Parameter beim Funktionsaufruf weggelassen werden, wird der Standardwert verwendet.
So wie ich das verstanden habe, wird mit dem o.g. Code ein Funktionszeiger erstellt.
Beim ersten Aufruf wird die Funktion mit allen Parametern aufgerufen.
Beim zweiten Aufruf wird die Funktion nur mit dem ersten Parameter aufgerufen, alle anderen Parameter sind auf Standard-Werte gesetzt.
Kann man diesen Befehl mit Freebasic umsetzen?
Gruss
Findus |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 05.03.2010, 19:33 Titel: |
|
|
Meinst du sowas:
Code: | Declare Function TestCallback(FuncName As String, Para As String = " ", ParaLen As Integer = -1, Flags As Integer = 0, ReturnString As String = " ") As String
Dim As Function (FuncName As String, Para As String = " ", ParaLen As Integer = -1, Flags As Integer = 0, ReturnString As String = " ") As String TestCall
Dim As String Returnvalue
TestCall = @TestCallback
Returnvalue = TestCall("1", "2", 3, 4, "5")
Print Returnvalue
Returnvalue = TestCall("2")
Print Returnvalue
Sleep
Function TestCallback(FuncName As String, Para As String = " ", ParaLen As Integer = -1, Flags As Integer = 0, ReturnString As String = " ") As String
Return "TestCall " & FuncName
End Function |
|
|
Nach oben |
|
 |
Findus
Anmeldungsdatum: 14.04.2009 Beiträge: 4
|
Verfasst am: 06.03.2010, 12:18 Titel: |
|
|
Danke für dein super Beispiel.
Das hat mich schon mal einen großen Schritt weiter gebracht.
Gruss
Findus |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|