[Mono-devel-list] Re: C++/CLI binary portability II
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)
IL_0001: call instance void
IL_0007: call instance void temp.Form1::InitializeComponent()
} // 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?
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