[Gtk-sharp-list] 64bit Gtk# for windows

Jaroslav Šmíd dataman64bit at gmail.com
Tue Sep 16 20:13:48 EDT 2008


Mike Kestner wrote:
> On Tue, 2008-09-16 at 13:45 +0200, Jaroslav Šmíd wrote:
>    
>> Ok, no one is interested, no one answered ... I made it alone. It wasn't
>> as tough as I thought it'd be. I took *-sharp.dll libraries from
>> ArchLinux and only compiled *glue.dll libraries against 64bit Gtk+
>> libraries using mingw-w64. 64bit Gtk libraries can be found at gtk
>> homepage, 64bit GtkSharp for windows can be found at
>> http://rapidshare.com/files/145727260/GtkSharp.zip.html (sorry, but I
>> didn't know where else to upload it). Feel free to use, redistribute,
>> repackage or whatever :-)
>>      
>
> The fact that nobody responded in under 24 hours doesn't quite equate to
> nobody being interested.  ;-)
>
> Thanks for providing that.  I'm interested to hear of any issues people
> might encounter running gtk-sharp on win64.  It has some interesting
> type sizing issues.  The way we've worked around some of them won't work
> if you just copy the dlls from a win32 build over to a win64
> installation, unfortunately.  It will be necessary to recompile the
> assemblies for win64, since we wanted to avoid creating a huge nest of
> duplicated pinvoke signatures and conditional execution of methods all
> over the binding.
>
> Note that the win64 platform is really the only platform this copying
> restriction applies to, because of their decision to break the LP64
> convention used on other 64 bit platforms.
>
> Mike
>
>    
I actually took them from ArchLinux x86_64 and they work. Maybe this is 
because I didn't call any gtk+ function having long as its argument. But 
what else should I do. I do not know how to compile assemblies for 
windows. I do not have cygwin and I do not want to install it as it is 
32bit and I have 64bit OS (I know it works, but I just hate having 32bit 
application on 64bit system). .NET applications should run no matter 
where you run them. You could solve "long size issue" by using size_t C# 
equivalen (if there is no, IntPtr has the same size) instead (I know, 
this is not nice sollution, but it works - 32bit on 32bit systems, 64bit 
on 64bit systems). But it would require Gtk changes as well (they would 
have to use size_t instead of long/ulong or whatever it is typedefed in 
glib).

So is there any possibility that we will have official GtkSharp release 
for 64bit Windows? I don't think so, you don't even have 2.12 build for 
32bit Windows.

To get back to compilation problems. SVN version has no longer win32 
makefiles. Why? It can't be that hard to maintain them. I know they were 
for msys, but at least I could read them and write own for native 
non-msys mingw. I used makefiles from 2.12 source tarball available at 
novell's web to write my own.

I compiled gapi-fixup and codegen using csc from dotnet 3.5 (I can't 
have 1 or 1.1, I'm using vista and there is no 64bit dotnet 1 or 1.1). 
Then I wrote those makefiles generating .cs using gapi-fixup and codegen 
in the same way as 2.12's makefiles and compilling *glue.dll files (I 
can't get, why you are creating another platform specific stuff, why 
don't you wrap it in .NET? This is what I don't like on GtkSharp and 
everything around it - million of platform dependend C wrappers in C). I 
have glue files and cs files. But I am unable to compile them. Always 
multiple definitions of blablabla or unknown type blablabla.

So is 64bit version of GtkSharp going to be release in the near future? 
Is it worth waiting?


More information about the Gtk-sharp-list mailing list