brainsucker
23rd October 2002 00:36 UTC
System: near the second release
Almost ready, just more docs, tutorial and some examples needed (I think).
See Examples\System.nsi for current examples (including System based Splash), Contrib\System\New System.Txt for short description, Contrib\System\WhatsNew.txt is here :)
WhatsNew:
1. Syntax, with inline input
2. Int64 full support (conversion/operations/comparison)
3. Structures support
4. Callbacks support, including multilevel callbacks
5. Some useful rountines (Alloc, Free, Copy)
6. CDecl and StdCall calling conventions
so the functionality is almost unlimited now.
P.S.s:
1. Remove old system from repository before posting a new one, please.
2. VC7 project only. I'll try to create VC6 project to final release.
brainsucker
23rd October 2002 06:47 UTC
New example
paths
System
::Alloc 1024
Pop$1
; Get drives
System::Call 'kernel32::GetLogicalDriveStringsA(i 1024, i r1) i'
>enumok:
;One more drive?
System::Call 'kernel32::lstrlenA(i r1) i.r2'
IntCmp $2 0 enumex
; Drive space
System::Call 'kernel32::GetDiskFreeSpaceExA(i r1, *l .r3, *l .r4, *l .r5) i'
; Pretty KBs
System::Int64Op $3 / 1024
Pop$3
System::Int64Op $4 / 1024
Pop$4
System::Int64Op $5 / 1024
Pop$5
; Get pretty drive path string
System::Call '*$1(&t1024 .r6)'
; Message box
System::Call 'user32::MessageBoxA(i $HWNDPARENT,\\
t "Path: `$6`, Free for Caller: $3 kb, Free for All: $5 kb, Disk Size: $4 kb",\\
t "Disk spaces example", i 33) i.r0'
; User cancel?
IntCmp $0 2 enumex
; Next drive path
IntOp$1 $1 + $2
IntOp$1 $1 + 1
goto enumok
enumex: ; End of drives or user cancel
; Free memory for paths
System::Free $1
>
pretty php highlighting (kichik) :D