[Mono-winforms-list] Windows Forms on Mac OS X

Erik Renes keenriser at planet.nl
Wed Jan 9 07:34:29 EST 2008


Hi Everyone,
A short status update ...

Meanwhile I have succesfully installed cairo using macports, then I  
have dllmapped the libcairo to the one installed by macports by  
editing the config file in the Mono.Framework etc/ directory:
<dllmap dll="libcairo-2.dll" target="/opt/local/lib/libcairo.dylib"  
os="osx"/>

This caused the windows forms application to work, however, only in  
the second instance of X11. Let me elaborate:
First I start my test.exe using 'mono test.exe', then X11 pops up in  
the dock and does not do anything. If I quit the running X11 instance  
(right click on X in the dock and click Quit) it immediately comes  
back after closing down. Directly after, the messagebox is being shown  
as expected.

I can now run Windows Forms apps normally, however if I close this  
second instance of X11, I have to repeat the procedure to get it  
working again.
Now for development this is not so much of an issue, but runtime  
deployment I don't think any user would want to do this just to run  
one app.

Does anyone have any suggestions that I can try to make it work as  
intended? (or is this intended?) I have read something about a native  
driver for winforms, is it enabled by default in Mono 1.2.6 on Mac OS  
X? If not, maybe this is something for me to try out, if anyone could  
tell me how to enable it?

Best Regards,
Erik Renes

On Jan 9, 2008, at 9:41 AM, Erik Renes wrote:

> <test.cs>
>
> Hi All,
>
> I am currently trying to get a windows forms application to run on  
> Mac OS X 10.5.1 (clean Mac OS X install, clean Mono install with the  
> Mac OS X package from the website), however, it seems that there is  
> something wrong with my setup. I have created a test application  
> that does nothing but show a messagebox (attached: test.cs).
>
> The moment I do anything with windows forms, my application hangs.
> I have used the --trace mono option to check where it goes wrong,  
> the following happens the first time I run the application:
>
> . . . . . . . . . . . . . . . . . . . . ENTER:  
> System.Windows.Forms.XplatUIX11:.ctor ()(this: 
> 0x1d31050[System.Windows.Forms.XplatUIX11 test.exe], )
> . . . . . . . . . . . . . . . . . . . . . ENTER:  
> System.Windows.Forms.XplatUIDriver:.ctor ()(this: 
> 0x1d31050[System.Windows.Forms.XplatUIX11 test.exe], )
> . . . . . . . . . . . . . . . . . . . . . LEAVE:  
> System.Windows.Forms.XplatUIDriver:.ctor ()
>
> [ ... lots of initialization ... ]
> . . . . . . . . . . . . . . . . . . . . . ENTER: (wrapper managed-to- 
> native) System.Windows.Forms.XplatUIX11:XInitThreads ()()
> . . . . . . . . . . . . . . . . . . . . . LEAVE: (wrapper managed-to- 
> native) System.Windows.Forms.XplatUIX11:XInitThreads ()result=1
> . . . . . . . . . . . . . . . . . . . . . ENTER: (wrapper managed-to- 
> native) System.Windows.Forms.XplatUIX11:XOpenDisplay (intptr)(0x0, )
>
> After the XOpenDisplay, my application does not proceed.
> Then I try to run it again (the previous application is closed, but  
> X11 is still running) and get the following hang:
>
> ENTER: System.Environment:GetEnvironmentVariable (string)([STRING: 
> 0x1822aa0:MONO_GDIP_USE_COCOA_BACKEND], )
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> ENTER: (wrapper managed-to-native)  
> System.Security.SecurityManager:get_SecurityEnabled ()()
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> LEAVE: (wrapper managed-to-native)  
> System.Security.SecurityManager:get_SecurityEnabled ()FALSE
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> ENTER: (wrapper managed-to-native)  
> System.Environment:internalGetEnvironmentVariable (string)([STRING: 
> 0x1822aa0:MONO_GDIP_USE_COCOA_BACKEND], )
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> LEAVE: (wrapper managed-to-native)  
> System.Environment:internalGetEnvironmentVariable (string) 
> [STRING:null],
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> LEAVE: System.Environment:GetEnvironmentVariable (string) 
> [STRING:null],
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> ENTER: System.Environment:get_OSVersion ()()
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> LEAVE: System.Environment:get_OSVersion ()[System.OperatingSystem: 
> 0x1d2bf00]
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> ENTER: System.Drawing.GdiplusStartupInput:MakeGdiplusStartupInput () 
> (VALUERET:0xbfffe1b4, )
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> LEAVE: System.Drawing.GdiplusStartupInput:MakeGdiplusStartupInput () 
> [01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,]
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> ENTER: System.Drawing.GdiplusStartupOutput:MakeGdiplusStartupOutput  
> ()(VALUERET:0xbfffe19c, )
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> LEAVE: System.Drawing.GdiplusStartupOutput:MakeGdiplusStartupOutput  
> ()[00,00,00,00,00,00,00,00,]
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
> ENTER: (wrapper managed-to-native)  
> System.Drawing.GDIPlus:GdiplusStartup  
> (ulong 
> &,System 
> .Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&) 
> ([BYREF:0x8fafa4], [BYREF:0xbfffe1a4], [BYREF:0xbfffe194], )
>
> It seems that the initialization of GDIPlus does not complete  
> succesfully.
>
> I have found threads on the OS X list suggesting that I should use a  
> dll map to tell mono where my X11 is resided, however, this is  
> already installed by default with the mono OS X package. What I  
> think might be the problem - I'm not sure - is that I don't have  
> Cairo installed. If this is indeed a problem, can anyone suggest a  
> way to install this and make mono aware of it?
>
> I would be happy to receive any suggestions on how to troubleshoot  
> this issue, as I have never used a mac for development before.
>
> Best Regards,
> Erik Renes_______________________________________________
> Mono-winforms-list maillist  -  Mono-winforms-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-winforms-list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-winforms-list/attachments/20080109/4659f22b/attachment-0001.html 


More information about the Mono-winforms-list mailing list