[Mono-devel-list] Can I use Microsoft's DLL's on the Win32 platform?

Miguel de Icaza miguel at ximian.com
Tue Apr 26 14:12:20 EDT 2005


> Hmm... I didn't see COM interop listed anywhere on your roadmap page.  Is 
> this a priority?  It seems that the ability to execute Microsoft DLL's 

It is listed somewhere as a feature that we are not likely going to
support.  It is just not useful at all in Unix, so either someone
authors this support and convinces us that it is worth checking it into
the repository or that wont ever get done.

> would be a prerequisite for running Visual Studio projects, and in 
> particular the huge number of third party Win32-only assemblies require for 
> a desktop application.  (Interoperability is everything, and I would argue 
> that Java's failure on the desktop is largely due to Sun's obssession with 
> "platform independence", to the point of discouraging usage of native 
> API's, even when they are vastly superior to the JDK stuff.)

Apps that use COM or ActiveX controls will never run on Mono.  

Even if COM was there, the existing code that depends on the control
would require the control to be ported to some form of COM on Unix
(which to begin with is not available in a reusable form) and binaries
for each platform to be created.

> For what it's worth, I was able to reconfigure Mono.exe to load Microsoft's 
> DLL's (except for mscorlib.dll).  The first problem I encountered was 
> missing implementations for Marshal.ReadByte() and Marshal.ReadInt16().  I 
> hacked these as calls to mscoree.dll (which seems to work!), and now the 
> application runs until the CreateWindowEx() call, at which point it crashes 
> with a basic Win32 API error.  With some more hacking, I could probably get 
> further to some other error.

You can probably get further, but it is still a waste of time.


More information about the Mono-devel-list mailing list