Seite 4 von 6
Verfasst: 02.08.2005 01:42
von Deeem2031
Man kanns ja auch so wie ich machen und einen "Orginal"-Ordner anlegen, wo man die PB-Libs vorher reinkopiert, um sie später wenn nötig zurückkopieren. Außerdem ist es doch einfacher alte Programme mit den Libs zu testen, wenn die Befehle genauso heißen. Besonders würde mich nämlich freuen, wenn eure (schon fertigen) Programme dadurch schneller laufen

Verfasst: 02.08.2005 08:49
von dige
Bei mir schmeisst die neue StringExtension einen Linker Error:
Code: Alles auswählen
POLINK: warning: Multiple '.data' sections found with different flags
POLINK: error: Unresolved external symbol '_PB_Space_DEBUG'.
POLINK: fatal error: 1 unresolved external(s).
Verfasst: 02.08.2005 13:09
von Deeem2031
Mnm... bei der sind also auch Labels drin die eigentlich nicht da rein gehören, weil Space steht nicht in der Library, sondern in der "String"-Lib.
Warum Fred die DEBUG-Procs in die Extension-Libs packt weiß ich nicht und finde ich auch leicht unlogisch. Ich wollte ihn auch desswegen befragen, bin aber noch nicht dazu gekommen. Bis dahin wird wohl der Debugger mit den Libs nicht funktionieren...
Verfasst: 02.08.2005 18:31
von merlin
hallo deeem2031!
hab mal eine allgemein und sehr interessante frage zu deinen libs. habe von dir im alten thread folgenden source gesehen:
Code: Alles auswählen
Procedure SetRoundMode(Mode)
Select Mode
Case #RoundMode_Nearest
!FNSTCW WORD[Esp-2]
!MOV AX,WORD[Esp-2]
!MOV dx, AX
!AND DH, 12
!XOR AH, DH
!MOV WORD[Esp-2],AX
!FLDCW WORD[Esp-2]
Case #RoundMode_Down
!FNSTCW WORD[Esp-2]
!MOV AX,WORD[Esp-2]
!MOV dx, AX
!AND DH, 8
!XOR AH, DH
!OR AH, 4
!MOV WORD[Esp-2],AX
!FLDCW WORD[Esp-2]
Case #RoundMode_Up
!FNSTCW WORD[Esp-2]
!MOV AX,WORD[Esp-2]
!MOV dx, AX
!AND DH, 4
!XOR AH, DH
!OR AH, 8
!MOV WORD[Esp-2],AX
!FLDCW WORD[Esp-2]
Case #RoundMode_Truncate
!FNSTCW WORD[Esp-2]
!MOV AX,WORD[Esp-2]
!OR AH, 12
!MOV WORD[Esp-2],AX
!FLDCW WORD[Esp-2]
EndSelect
EndProcedure
Auch wenn ich mich nicht so sehr mit ASM auskenne, so scheint es mir dass du nur 16Bit ASM (register AX) anstatt 32bit ASM (register EAX) benutzt ???
Sind alle deine optimierten routinen und libs in 16 bit ASM ????
Verfasst: 02.08.2005 19:24
von Deeem2031
Nein, natürlich schreibe ich in 32-bit ASM. Bei der Procedure sind aber Words notwendig, die FPU benutzt nunmal ein Status
Word und kein Status
Long 
Verfasst: 02.08.2005 21:16
von merlin
ok, sorry.... ich wurde nicht wegen words statt longs stutzig... sondern wegen den registernamen wie AX anstatt EAX !?
Dachte immer AX wäre 16 bit (wie bei DOS) und EAX wäre 32 bit !?
Verfasst: 02.08.2005 22:41
von Deeem2031
AX ist ja auch ein 16-bit Register (ein Teil von EAX) und um ein Word zu speichern muss man nunmal einen 16-bit Register benutzen, ein Word in einen 32-bit Register zu speichern funktioniert nicht, außer man wandelt ihn um. (MOV Eax, word[...] -> Error)
Verfasst: 03.08.2005 10:32
von Kiffi
Hallo Deeem2031,
ich habe gerade feststellen müssen, dass Deine neue Memory-Lib Probleme
macht, wenn man die SkinWin-Lib von Danilo verwendet.
Starte ich beispielsweise das 'BackImage.pb'-Beispiel aus dem PBOSL-Paket
und schliesse das Fenster, so stürzt die Exe ab.
Mit der Original-Memory-Lib passiert das nicht...
W2K SP4 und PB 3.94 Beta 4
Grüße ... Kiffi
Verfasst: 03.08.2005 14:56
von Deeem2031
Sehr seltsam, wenn ich den Bug wieder einbaue den PB drin hatte dann funktionierts, wenn ich den rausnehme stürzt er beim freen der Windows ab...
Dabei besteht der Bug nur darin das der Speicher der von Memory-Procs allocated wurde nicht freigegeben wird. Ich kamm mir den Fehler nur erklären, wenn beim freen der Windows auf Speicher, der von der MemoryLib allocated wurde, zugegriffen wird. Denn der Speicher wird vor dem freen der Windows freigegeben.
Also entweder das Programm stürzt am Ende ab, oder ihr lasst die Speicher allocated und hofft das Windows die selber freigibt. Fred hat also wiedermal gute Arbeit geleistet

Verfasst: 03.08.2005 15:34
von merlin
Deeem2031 hat geschrieben:Fred hat also wiedermal gute Arbeit geleistet


hast schonmal versucht fred im irc oder per email direkt zu kontaktieren und ob du ihn nicht etwas unter den armen packen kannst bzw evtl. mit im pureteam einsteigen kannst!? (weil die aussage von dir über fred, die ist ja sicher inzwischen doch den meisten bekannt - commands die gehen, sind in der nächsten version etc plötzlich wieder buggy und all son zeugs)
wäre gut, wenn offiziel jemand in das pureteam einsteigen würde, der anscheinend in sachen optimieren/fixen usw doch einiges drauf hat!? wie sag ich immer so schön? nur gemeinsam ist man stark! versuchs mal! viel glück!