[Gtk-sharp-list] Gdk.DrawPoints() is broken on Windows [Was: Gtk-Sharp throws exception on Windows]
Hongli Lai
h.lai at chello.nl
Fri Oct 6 03:01:33 EDT 2006
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#.
More information about the Gtk-sharp-list
mailing list