[Gtk-sharp-list] Bindings troubles on Windows when conecting gsignals

Andoni Morales Alastruey ylatuya at gmail.com
Mon Jun 2 16:22:31 EDT 2008



Hello!

I'm creating the bindings for a Gtk Timescale written in C.
This timescale is a simple widget witch allows to adjust the inbounds
and the outbounds of a segment of time. It has 2 pointers witch delimits
the segment and emits 2 signal in_changed and out_changed with the new
limits when a pointer is moved.
I've used the gapi tools to get the c# bindings and the widget is
working properly on Linux.
On Windows I also get it working, but when the widget emits a signal and
this signal is rised on the app, the program finish without any debug
info.

This the output when I execute a test window with the widget. When I
move one of the cursors I get this:

Method (wrapper runtime-invoke) System.Object:runtime_invoke_void_string
(object,intptr,intptr,intptr) emitted at 00F60028 to 00F600BD(codelength
149) [test.exe]
Method System.OutOfMemoryException:.ctor (string) emitted at 00F600C0 to
00F600E3 (code length 35) [test.exe]
Method System.SystemException:.ctor (string) emitted at 00F60100 to
00F60123 (code length 35) [test.exe]
Method System.Exception:.ctor (string) emitted at 00F60130 to 00F60148
(code length 24) [test.exe]
Method System.Exception:set_HResult (int) emitted at 00F60148 to
00F60156 (codelength 14) [test.exe]
Method System.NullReferenceException:.ctor (string) emitted at 00F60158
to 00F6017E (code length 38) [test.exe]
Method System.StackOverflowException:.ctor (string) emitted at 00F60180
to 00F60196 (code length 22) [test.exe]

When I execute my aplication I get this:

Method LongoMatch.GtkTimescale:OutChangedSignalCallback
(intptr,double,intptr) emitted at 00FDAEC0 to 00FDB05B (code length 411)
[LongoMatch.exe]
Method LongoMatch.OutChangedArgs:.ctor () emitted at 00FDB068 to
00FDB076 (codelength 14) [LongoMatch.exe]
Method
LongoMatch.TimeLine:OnStopValueChanged(object,LongoMatch.OutChangedArgs)emitted at 00FDB078 to 00FDB1BE (code length 326) [LongoMatch.exe]
Method LongoMatch.OutChangedArgs:get_Val () emitted at
00FDB1D0to00FDB234 (code length 100) [LongoMatch.exe]
MethodLongoMatch.MainWindow:OnTimeScaleTimeNodeChanged(LongoMatch.TimeNode,object) emitted at 00FDB238 to 00FDB3A2 (codelength 362) [LongoMatch.exe]
Method CesarPlayer.PlayerBin:UpdateSegmentStopTime (long) emitted at
00FDB500 to00FDB51F (code length 31) [LongoMatch.exe]
Method CesarPlayer.GstPlayer:UpdateSegmentStopTime (long) emitted at
00FDB520 to00FDB545 (code length 37) [LongoMatch.exe]
Method(wrappermanaged-to-native)CesarPlayer.GstPlayer:bacon_video_widget_segment_stop_update (intptr,long) emitted at 00FDB558 to 00FDB5B0 (code length 88) [
LongoMatch.exe]

Stacktrace:
at (wrapper managed-to-native) Gtk.Application.gtk_main () <0x00004>
at (wrapper managed-to-native) Gtk.Application.gtk_main () <0xffffffff>
at Gtk.Application.Run () <0x00007>
at LongoMatch.MainClass.Main (string[]) <0x000a6>
at (wrapper runtime-invoke)
LongoMatch.MainClass.runtime_invoke_void_string[](object,intptr,intptr,intptr) <0xffffffff>
This application has requested the Runtime to terminate it in an unusual
way.
Please contact the application's support team for more information.

As you can see the signal is rised and processed:
Method LongoMatch.GtkTimescale:OutChangedSignalCallback
(intptr,double,intptr) emitted at 00FDAEC0 to 00FDB05B (code length 411)
[LongoMatch.exe]
Method LongoMatch.OutChangedArgs:.ctor () emitted at 00FDB068 to
00FDB076 (codelength 14) [LongoMatch.exe]

Last week I had no problems with this and the only thing that changes
between Windows and Linux is the compilation of the lib "libtimescale",
so I think I'm missing something at the compilation time.
To compile I use mingw/Msys linking to the Gtk binaries provided with
Mono with this flags:
-DWIN32 -mno-cygwin -mms-bitfields

Thanks



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/gtk-sharp-list/attachments/20080602/af3a6451/attachment.html 


More information about the Gtk-sharp-list mailing list