eine Funktion handelt, den Code dafuer einbaut, aber den Aufruf zu dieser
"Funktion" nicht mehr hinein schreibt.
Code: Alles auswählen
Macro DoubleQuote
"
EndMacro
Macro DoubleUnderscore(Name)
"_"+DoubleQuote#Name#DoubleQuote+"_"
EndMacro
Procedure.s a()
ProcedureReturn "huhu"
EndProcedure
Select Name$
Case a()
Case DoubleUnderscore(Name)
EndSelect
Code: Alles auswählen
; Select Name$
PUSH dword [v_Name$]
; Case a()
PUSH dword [_PB_StringBasePosition]
CALL _Procedure0
POP edx
MOV dword [_PB_StringBasePosition],edx
ADD edx,[PB_StringBase]
MOV ecx,[esp]
CALL _SYS_StringEqual
JE _Case1
; Case DoubleUnderscore(Name)
JMP _EndSelect1
_Case1:
POP edx
MOV dword [_PB_StringBasePosition],edx
ADD edx,[PB_StringBase]
MOV ecx,[esp]
CALL _SYS_StringEqual
JE _Case2
; EndSelect
Der 2. Block sieht eigentlich genauso aus, nur das es da keine
Funktion zum aufrufen gibt. Hier haette jetzt der Zugriff zu dem
statischen String erfolgen muessen.
Mit dem Case Workaround sieht das dann so aus :
Code: Alles auswählen
MOV edx,_S1
MOV ecx,[esp]
CALL _SYS_StringEqual
JE _Case1
