Verfasst: 03.02.2006 22:56
Wann kommt eigentlich die Linux-Version?Rubiko hat geschrieben:wann kommt eigentlich ne Demo?
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Wann kommt eigentlich die Linux-Version?Rubiko hat geschrieben:wann kommt eigentlich ne Demo?
Nicht nur die, die interne Funktionen von PB benutzen gehen nicht mehr, sondern auch (fast) alle String-Funktionen werden nicht mehr laufen, da es ja jetzt ein neues String-System gibt.Programie hat geschrieben:Kann das sein, dass manche Librarys nicht mehr mit PB 4.0 funktionieren?
Code: Alles auswählen
Macro AnotherMacro
UCase
EndMacro
Macro NewWorld(a=1, b=2, c="Test")
a#b#er("FAST", AnotherMacro(c))
EndMacro
NewWorld(Message,Request)
; The '#' puts together the 2 parts in one word. So a#b#er becomes MessageRequester when you pass
; Message for a and Request for b.
; The assigning of the values to a and b is only to demonstrate
; the ability for optional parameters. It does not make sense in this example really, as
; NewWorld() would become:
12er("FAST", UCase("Haha"))
Nicht zu vergessen das neue Prototype welches das Einbetten von Funktionen aus DLLs usw. um einiges erleichtert.ts-soft hat geschrieben:Viele UserLibs sind jetzt wohl entbehrlich, dadurch das unbenutze Proceduren
nicht in der Exe erscheinen, Import, Defined usw. sind oftmals wohl Inlcudes
besser geeignet.
Naja, gibt dann auch später weniger Probleme
Was genau verstehst Du daran nichthallodri hat geschrieben:Code: Alles auswählen
Macro AnotherMacro UCase EndMacro Macro NewWorld(a=1, b=2, c="Test") a#b#er("FAST", AnotherMacro(c)) EndMacro NewWorld(Message,Request) ; The '#' puts together the 2 parts in one word. So a#b#er becomes MessageRequester when you pass ; Message for a and Request for b. ; The assigning of the values to a and b is only to demonstrate ; the ability for optional parameters. It does not make sense in this example really, as ; NewWorld() would become: 12er("FAST", UCase("Haha"))
Kann mir das mal jemand erklaeren ?
Code: Alles auswählen
Macro test(a=1, b=1)
a#b "Hallo Hallodri"
EndMacro
test(de,bug)
Code: Alles auswählen
Structure structurePB_CS
Cnt.l
EndStructure
Procedure PB_InitCS(*PCS.structurePB_CS )
*PCS\Cnt=0
EndProcedure
Procedure PB_EnterCS(*PCS.structurePB_CS )
!POP Edi ;POP/PUSH dient zum schnellen Einlesen des Parameters *PCS in das Register EDI
!PUSH Edi
!.loop:
;!PUSH dword 1
;!CALL _Sleep@4
!If ~ defined _Sleep@4 | defined @f
!extrn _Sleep@4
!@@:
!End If
!MOV Esi,1
!XCHG [Edi],Esi ;Wir lesen den alten Wert aus und schreiben als neuen 1 rein!
!CMP Esi,0 ;Alter Wert war null, d.h. die vorige CS ist fertig
!JNE .loop ;Durch das XCHG haben wir automatisch wieder 1 im Speicher
EndProcedure
Global SichereStrings.structurePB_CS
PB_InitCS(SichereStrings)
PB_EnterCS(SichereStrings)
Threadsafe bedeutet gleichzeitig auch immer ein gewisser Performance-Verlust und eine größere Datei, deshalb hat man hier die Wahl.Und zum zweiten noch, was bedeutet in den Compileroptionen "Create Threadsafe executable", was geschieht mit der Datei dann? Weshalb sollte ohne das nichts Threadsicher sein? Wozu das?
Dankebenny hat geschrieben:
Was genau verstehst Du daran nicht
Hier mal ein einfacheres Beispiel :
Code: Alles auswählen
Macro test(a=1, b=1) a#b "Hallo Hallodri" EndMacro test(de,bug)