Code: Select all
Procedure.s int64tostr(*int64val.LARGE_INTEGER) ; 64bit to string
temp64.LARGE_INTEGER ;this "hack" is needed cause Unint64 function is bugged
temp64\LowPart=*int64val\LowPart ;it "eats" up the referenced int64, leaving it 0 sometimes.
temp64\HighPart=*int64val\HighPart
ProcedureReturn UInt64_str(temp64)
EndProcedureMy only guess is that the libs UInt64_str() routine has a bug,
I did some more tests and it seems that it eat up the value given in the argument, leaving it zero.
This especially becomes apparent if it is used multiple times.
I'm pretty sure it's not my own archiver code,
as simply replacing the direct use of UInt64_str() with my wrapper above
fixes the issue,
but if you could find out what causes it that would be great,
as I'd prefer to not have to use a wrapper.
The library is fine otherwise (though I miss the syntax useage hints hehe...

