Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > 3c88344d1f3d15057277d028d0022277 > files > 776

swig-1.3.11-4mdk.i586.rpm

# file: example.tcl

catch { load ./example.so example}
catch { load ./example.dll example}    ;# Windows

# First create some objects using the pointer library.
puts "Testing the pointer library"
set a [ptrcreate int 37]
set b [ptrcreate int 42]
set c [ptrcreate int]       ;# Memory for result

puts "     a = $a"
puts "     b = $b"
puts "     c = $c"

# Call the add() function with some pointers
add $a $b $c

# Now get the result
set r [ptrvalue $c]
puts "     37 + 42 = $r"

# Clean up the pointers
ptrfree $a
ptrfree $b
ptrfree $c

# Now try the typemap library
# This should be much easier. Now how it is no longer
# necessary to manufacture pointers.

puts "Trying the typemap library"
set r [sub 37 42]
puts "     37 - 42 = $r"

# Now try the version with multiple return values

puts "Testing multiple return values"
set qr [divide 42 37]
set q [lindex $qr 0]
set r [lindex $qr 1]
puts "     42/37 = $q remainder $r"