Hongli Lai wrote: > I'm currently writing a Gtk-Sharp app using Mono on Linux. It's supposed > to also work on Windows. > > But when I run the program, it throws an exception: > > Method not found: Void Gdk.Drawable.DrawPoints(Gdk.GC, Gdk.Point[]).: > at FieldEditor.FieldView.RenderToDrawable(Field field, > FieldSelection region, FieldSelection selection, UInt32 zoomLevel, > Drawable drawable) > at FieldEditor.FieldView.OnExposed(Object o, ExposeEventArgs args) > at Gtk.Widget.ExposeEventSignalCallback(IntPtr arg0, IntPtr arg1, > IntPtr gch) > at Gtk.Application.gtk_main() > at Gtk.Application.Run() > at FieldEditor.MainClass.Main(String[] args) > > This is weird. The program can create Gtk windows and widgets correctly, > yet cannot call Gdk functions. Did I do something wrong or is this a bug > in Gtk-Sharp? > > Extra information: > - The program's source code is located at > http://svn.sourceforge.net/viewvc/openkore/field-editor/trunk/ > - A binary is available here: http://www.openkore.com/misc/FieldEditor.zip > - To use the program you need a random .fld file, available here: > http://svn.sourceforge.net/viewvc/openkore/fieldpack/trunk/fields/ > - I'm using .Net framework 2.0 and Gtk-Sharp 2.7.1-0.4 > - The .exe was compiled as follows: mcs > -pkg:gtk-sharp-2.0,glade-sharp-2.0 *.cs -out:bin/Release/FieldEditor.exe > -target:winexe -optimize
I figured out what causes this problem: the Gtk-Sharp included with Mono 1.1.17.1 has a different function definition for Gdk.DrawPoints than the Gtk-Sharp for Windows (2.7.1-0.4). On Linux, it's defined (correctly) as follows: Gdk.DrawPoints(Gdk.Drawable target, Point[] points) On Windows, it's defined (INCORRECTLY!) as follows: Gdk.DrawPoints(Gdk.Drawable target, Point points, int npoints) The latter is obviously wrong. It seems to be a direct translation of the C interface, which expects an array. It can't be used in C#. _______________________________________________ Gtk-sharp-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
