Seite 2 von 3
Verfasst: 10.09.2007 22:40
von ZeHa
Ich hab nicht gesagt, daß man es so machen
muß und ich
fordere auch nichts
Aber daß es zumindest gehen müßte, ist doch auch gut zu wissen, wo ist denn das Problem? Immerhin schreibt Dieter, daß er Angst kriegt

also ist es doch berechtigt, es auch mit Bordmitteln zu machen, wenn es möglich ist. Und Funktions-Pointer (also nix mit GOTO) sind ebenfalls praktisch und auch in Hochsprachen noch gern gesehen.
Verfasst: 10.09.2007 23:38
von Froggerprogger
Code: Alles auswählen
Macro Goto(x)
!JMP[v_#x]
EndMacro
var = ?mark2
Goto(var) ; mit runden Klammern indirekter Sprung zu Adresse mit Wert in 'var'
End
mark1:
Debug 1
End
mark2:
Debug 2
Goto mark1 ; ohne Klammern normaler Sprung zu Sprungmarke namens 'mark1'
End
So, nu gehts ja fast auch ohne Assembler...
Verfasst: 10.09.2007 23:51
von Kaeru Gaman
> mit reinen PB-Sprachmitteln
Code: Alles auswählen
Procedure Dingens( Nr.l)
Select Nr
Case 1
Bla
Case 2
Blubb
Case 3
Schnarch
EndSelect
EndProcedure
Verfasst: 11.09.2007 06:40
von ZeHa
Bla, Blubb und Schnarch sind keine PB-Sprachmittel!!!!1!1!!!1111!!11.5
Verfasst: 11.09.2007 09:44
von gnasen
ZeHa hat geschrieben:Bla, Blubb und Schnarch sind keine PB-Sprachmittel!!!!1!1!!!1111!!11.5
das sagst du jetzt erst??? und ich wunder mich, warum nie eins meiner Programme ans laufen kam

Verfasst: 11.09.2007 15:16
von hardfalcon
Mich beschleicht das Gefühl, das ganze hat mit dem nächsten Contest (Stichwort "Crackme") zu tun... Bei sowas muss man halt zuweilen auch mal den breitgetretenen Pfad der Hochsprachen verlassen...

Verfasst: 11.09.2007 20:56
von GreyEnt
Jungs habt euch wieder lieb.
Tut mal schön durch die Hose atmen.
Es war nur so eine Frage. Nun weiss ich das es nicht geht. Jedenfalls nicht so wie ich es wolte. Also Tread löschen bevor sich PureBasic in zwei Lager teilt.

Verfasst: 11.09.2007 21:03
von PMV
Dieter Platzke hat geschrieben:Also Tread löschen bevor sich PureBasic in zwei Lager teilt.

1. PureBasic kann sich nicht teilen
2. das Forum hier ist schon geteilter Meinung
3. Thread löschen würde im Fall der Fälle kontraproduktiv
MFG PMV
Verfasst: 11.09.2007 21:04
von edel
Vielleicht so ?
Code: Alles auswählen
PrototypeC Proc()
proc = 3
Goto program_start
Proc1:
Debug "call Proc1"
Return
Proc2:
Debug "call Proc2"
Return
Proc3:
Debug "call Proc3"
Return
program_start:
Select proc
Case 1
Test.Proc = ?Proc1
Case 2
Test.Proc = ?Proc2
Case 3
Test.Proc = ?Proc3
EndSelect
Test()
Statt "?Proc1" usw , kann man natuerlich auch irgendwelche
Variablen einsetzen. Hauptsache ein Zeiger auf eine Function wird
uebergeben.
Verfasst: 11.09.2007 21:57
von NicTheQuick
Ist das böse, oder kann da nichts passieren?
Code: Alles auswählen
Prototype Jump()
Define a.l
Define Go.Jump
Go = ?mark1
Debug go()
Go = ?mark2
Debug go()
Go = ?mark3
Debug go()
End
mark1:
Debug "Mark 1"
!MOV Eax, 123
Return
mark2:
Debug "Mark 2"
!MOV Eax, 456
Return
mark3:
Debug "Mark 3"
!MOV Eax, 789
Return
