swig/Examples/tcl/pointer/example.tcl
Dave Beazley 37a6e409e4 new example
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@804 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2000-09-02 19:05:15 +00:00

45 lines
931 B
Tcl

# 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"