[Mono-devel-list] Re: C++/CLI binary portability II

Rafael Teixeira monoman at gmail.com
Sat Aug 14 20:39:46 EDT 2004

First, Mono's implementation of System.Windows.Forms is not ready, you
should have read the release notes for Mono 1.0 (Mono's implements
most of .NET 1.1, but not all).

A good rule of thumb is to read the release notes for any software
before trying to use it.

Second, your error message seems to say that the constructor for some
metadata Attribute could not be found, not the Form class constructor.
You´ll need dig a bit deeper to find out which one is missing.

But as you are using VC++ 2005 Express Beta 1, which installs/uses a
beta version of .NET 2.0, it is surely not a surprise that many
classes may be missing/incompatible.

As someone already pointed in your other thread of messages, many
classes needed for Visual C++.NET programs are being relocated from an
assembly (Microsoft.VisualC.dll) to another (mscorlib), but currently
none of those classes are implemented in Mono.

Are you sure you can't try to use C# instead of C++, it is a better
supported language in mono, as we develop almost all of our managed
code (class libraries and utilities) in it. As a developer with years
of experience in both languages, I prefer C# over C++(.NET
 or not) 100% of the time...

----- Original Message -----
Date: Sat, 14 Aug 2004 04:01:48 +0300
Subject: [Mono-devel-list] Re: C++/CLI binary portability II
To: mono-devel-list <mono-devel-list at lists.ximian.com>

 I pasted a wrong thing, so I repost:
 After managing to run successfully the console hello world program
under Mono 1.0 which was compiled with VC++ 2005 Express Beta 1, I
tried to make a GUI one with a Form, a TextBox and a Button. However
the .exe under Mono produces the following error:

root at chrome root]# mount /mnt/cdrom
 [root at chrome root]# cd /mnt/cdrom
 [root at chrome cdrom]# mono temp.exe
 ** (temp.exe:1412): WARNING **: Missing method .ctor in assembly
/mnt/cdrom/temp.exe typeref index 34
 ** ERROR **: Can't find custom attr constructor image:
/mnt/cdrom/temp.exe mtoken: 0x0a00002d
 [root at chrome cdrom]#


 The ILDASM on the .exe reveals a method .ctor : void() in the class
temp.Form1. I guess it is a default constructor or something.
 When I double click on that method I get a second window with the
following information about that method:
 ..method public specialname rtspecialname 
         instance void  .ctor() cil managed
   // Code size       13 (0xd)
   .maxstack  1
   IL_0000:  ldarg.0
   IL_0001:  call       instance void
   IL_0006:  ldarg.0
   IL_0007:  call       instance void temp.Form1::InitializeComponent()
   IL_000c:  ret
 } // end of method Form1::.ctor
 <>The .exe was compiled with /clr:safe. Mono 1.0 is used. Any ideas
on how to fix/bypass the problem?
 Best regards,
 Ioannis Vranos 
 _______________________________________________ Mono-devel-list
mailing list Mono-devel-list at lists.ximian.com

Rafael "Monoman" Teixeira
Cognition is not a representation of an objectively existing world
but is a bringing forth of a world in the process of living.
-- Fritjof Capra, citing 
   Humberto Maturana and Francisco Varella's "Santiago Theory of Cognition"

More information about the Mono-devel-list mailing list