Seite 5 von 18

Verfasst: 03.02.2006 22:56
von vonTurnundTaxis
Rubiko hat geschrieben:wann kommt eigentlich ne Demo?
Wann kommt eigentlich die Linux-Version?

Verfasst: 03.02.2006 22:57
von Deeem2031
Programie hat geschrieben:Kann das sein, dass manche Librarys nicht mehr mit PB 4.0 funktionieren? :shock:
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.

Verfasst: 03.02.2006 23:00
von edel

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 ?

Verfasst: 03.02.2006 23:01
von ts-soft
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 :allright:

Verfasst: 03.02.2006 23:05
von freedimension
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 :allright:
Nicht zu vergessen das neue Prototype welches das Einbetten von Funktionen aus DLLs usw. um einiges erleichtert.

Verfasst: 03.02.2006 23:10
von benny
hallodri 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 ?
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) 

Verfasst: 03.02.2006 23:11
von Toshy
Hi.
es ist zwar klar, das man seinen Code ändern muß und globale und lokale Variablen ein wenig anders funktionieren.

Was ich nicht verstehe ist, warum folgenden Code auf einmal nicht geht:

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) 

Bei aufruf von PB_EnterCS(SichereStrings) erscheint im "Statusfenster unten " Invalid Access Memory.
Ich habe nur mal zum test die procedure ganz geleert, dann ging es. ich dachte nämlich zuerst, das man keine Strukturvariablen mehr übergeben kann.

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?

Gruß
Toshy

Verfasst: 03.02.2006 23:17
von freedimension
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?
Threadsafe bedeutet gleichzeitig auch immer ein gewisser Performance-Verlust und eine größere Datei, deshalb hat man hier die Wahl.

Verfasst: 03.02.2006 23:18
von Batze
@Friedrichs:
ließ dir erstmal die komplette Info zur Beta durch und versteh sie am besten auch. :wink:

Verfasst: 03.02.2006 23:27
von edel
benny 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) 
Danke