[DllImport ("libtest")]
public static extern int GetVersionEx ([In, Out] OSVersionInfo osvi);
+ [DllImport ("libtest")]
+ public static extern int BugGetVersionEx (int a, int b, int c, int d, int e, int f, int g, int h, [In, Out] OSVersionInfo osvi);
+
[DllImport ("libtest", EntryPoint="GetVersionEx" )]
public static extern int GetVersionEx2 (ref OSVersionInfo2 osvi);
}
Console.WriteLine( "A: {0}", osvi2.a);
Console.WriteLine( "B: {0}", osvi2.b);
+ Console.WriteLine ("Testing with extra parameters at the beginning");
+
+ OSVersionInfo osvi3 = new OSVersionInfo();
+ osvi3.a = 1;
+ osvi3.b = 2;
+
+ if (LibWrap.BugGetVersionEx (10, 10, 10, 10, 20, 20, 20, 20, osvi3) != 5)
+ return 7;
+
+ if (osvi3.a != 2)
+ return 8;
+
+ if (osvi3.b != 3)
+ return 9;
+
+ Console.WriteLine( "A: {0}", osvi.a);
+ Console.WriteLine( "B: {0}", osvi.b);
+
+ Console.WriteLine( "\nPassing OSVersionInfo as struct" );
+
return 0;
}
}