| // This example illustrates global variable access from C#. |
| |
| using System; |
| using System.Reflection; |
| |
| public class runme { |
| |
| public static void Main() { |
| |
| // Try to set the values of some global variables |
| |
| example.ivar = 42; |
| example.svar = -31000; |
| example.lvar = 65537; |
| example.uivar = 123456; |
| example.usvar = 61000; |
| example.ulvar = 654321; |
| example.scvar = -13; |
| example.ucvar = 251; |
| example.cvar = 'S'; |
| example.fvar = (float)3.14159; |
| example.dvar = 2.1828; |
| example.strvar = "Hello World"; |
| example.iptrvar= example.new_int(37); |
| example.ptptr = example.new_Point(37,42); |
| example.name = "Bill"; |
| |
| // Now print out the values of the variables |
| |
| Console.WriteLine( "Variables (values printed from C#)" ); |
| |
| Console.WriteLine( "ivar =" + example.ivar ); |
| Console.WriteLine( "svar =" + example.svar ); |
| Console.WriteLine( "lvar =" + example.lvar ); |
| Console.WriteLine( "uivar =" + example.uivar ); |
| Console.WriteLine( "usvar =" + example.usvar ); |
| Console.WriteLine( "ulvar =" + example.ulvar ); |
| Console.WriteLine( "scvar =" + example.scvar ); |
| Console.WriteLine( "ucvar =" + example.ucvar ); |
| Console.WriteLine( "fvar =" + example.fvar ); |
| Console.WriteLine( "dvar =" + example.dvar ); |
| Console.WriteLine( "cvar =" + example.cvar ); |
| Console.WriteLine( "strvar =" + example.strvar ); |
| Console.WriteLine( "cstrvar =" + example.cstrvar ); |
| Console.WriteLine( "iptrvar =" + example.iptrvar ); |
| Console.WriteLine( "name =" + example.name ); |
| Console.WriteLine( "ptptr =" + example.ptptr + example.Point_print(example.ptptr) ); |
| Console.WriteLine( "pt =" + example.pt + example.Point_print(example.pt) ); |
| |
| Console.WriteLine( "\nVariables (values printed from C)" ); |
| |
| example.print_vars(); |
| |
| Console.WriteLine( "\nNow I'm going to try and modify some read only variables" ); |
| Console.WriteLine( "\nChecking that the read only variables are readonly..." ); |
| |
| example ex = new example(); |
| Type t = ex.GetType(); |
| |
| Console.WriteLine( " 'path'" ); |
| PropertyInfo pi = t.GetProperty("path"); |
| if (pi.CanWrite) |
| Console.WriteLine("Oh dear this variable is not read only\n"); |
| else |
| Console.WriteLine("Good."); |
| |
| Console.WriteLine( " 'status'" ); |
| pi = t.GetProperty("status"); |
| if (pi.CanWrite) |
| Console.WriteLine("Oh dear this variable is not read only"); |
| else |
| Console.WriteLine("Good."); |
| |
| Console.WriteLine( "\nI'm going to try and update a structure variable.\n" ); |
| |
| example.pt = example.ptptr; |
| |
| Console.WriteLine( "The new value is" ); |
| example.pt_print(); |
| Console.WriteLine( "You should see the value" + example.Point_print(example.ptptr) ); |
| } |
| } |