Including Mono within a Wine package - should Wine expect this?

Kornél Pál kornelpal at
Tue Apr 15 05:53:04 CDT 2008


> From: "Hin-Tak Leung" <htl10 at>
> I can't comment on anything else, but after trying to get a .NET WinForms 
> application
> (mentioned in some of the bugs I filed) for a few months under the 3 
> options of
> native linux mono, wine+.NET and wine+mono, I can say that win32 mono uses 
> P/Invoke
> *differently* from how .NET2 does it, and the missing APIs required to get 
> an
> application to work with the wine + win32 mono and wine +MS.NET combo is 
> different.
> So some part of the applications runs better with wine + win32 mono and 
> some better
> with wine + MS.NET ... win32 mono and MS.NET just seems to have different 
> native code dependencies.

The only major difference I know is that Mono uses UTF-8 instead of ACP for 
ANSI functions. If you know some serious issues please feel free to file bug 
report(s) at Mono's Bugzilla.

> From: "Dan Kegel" <dank at>
> That's interesting info, thanks.
> At the moment you seem to be taking the lead on these issues.
> Please let us know how it goes.

I have made some progess and now I am able to call unmanaged methods from 
managed methods and also implemented some mscoree.dll hacks that make 
possible to use the NT loader (LoadLibrary). Unfortunately the loader uses 
mscoree.dll located in system32 anyway so I had to modify it's export 
address table in memory. And I also had to implement base relocation and 
import adress table processing for EXE modules because that is not done by 
NT. Processes could only be created from managed EXE files with some more 
intrusive mscoree.dll hacks (mscoree.dll file or registy modifications).


More information about the wine-devel mailing list