Ah--I get it now. Thanks.

Ted Neward
{.NET || Java} Course Author & Instructor, DevelopMentor
(http://www.develop.com)
http://www.javageeks.com/tneward
http://www.clrgeeks.com/tneward

----- Original Message -----
From: "Brent E. Rector" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, April 12, 2002 8:12 AM
Subject: Re: [DOTNET] Partition II Metadata Spec question


> This isn't legal according to the Partition II Metadata spec and
> according to Serge's most excellent book on IL. The problem isn't that
> it is static member of the <Module> type. That is fine and I've been
> handling them for months now.
>
> The problem is that the TypeRef has a nil resolution scope and there is
> no EXPORTEDTYPE table in the assembly and this is the prime (only)
> module. A nil resolution scope implies the reference is to a type
> defined in the same module of the assembly in which the reference
> appears. (A resolution scope of '1' implies the reference is to a type
> defined in a different module in the same assembly.) But the type does
> not appear to be defined at all in the module. There is no EXPORTEDTYPES
> table in this module so there appears to be no type to which a TYPEREF
> could bind anyway, let alone to this type.
>
> BTW I'm having to answer via the web pages again because the listserv
> hasn't sent me any mail in two days. Soon I'll get a few hundred
> messages if experience is a judge.
>
> > -- Brent Rector, .NET Wise Owl
> > Demeanor for .NET - an obfuscation utility
> > http://www.wiseowl.com/Products/Products.aspx
>
> From:         Ted Neward <[EMAIL PROTECTED]>
> Subject:      Re: Partition II Metadata Spec question
> Content-Type: text/plain; charset="iso-8859-1"
>
> It is perfectly legal (but I can't quote the part of the spec that
> states
> it, although Lidin does) for a static method to be global--in this case,
> it
> is actually scoped by the singleton "<Module>" type that all modules
> implicitly have defined on their behalf by the runtime. So, if I
> understand
> your question correctly, this isn't an invalid TypeRef at all.
>
> Ted Neward
> {.NET || Java} Course Author & Instructor, DevelopMentor
> (http://www.develop.com)
> http://www.javageeks.com/tneward
> http://www.clrgeeks.com/tneward
>
> ----- Original Message -----
> From: "Brent E. Rector" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, April 11, 2002 7:33 PM
> Subject: [DOTNET] Partition II Metadata Spec question
>
>
> > Using VS.NET, I created a MFC Application project. The *only* change I
> > made was to switch on the /CLR command line option (which then forces
> > you to turn a few others off). This produces a single module .EXE
> > managed assembly containing with managed code and unmanaged data.
> > PEVerify /MD states that the metadata is valid. The application even
> > runs successfully. However, upon inspection, there appears to be an
> > invalid TypeRef. ILDASM /ADV shows the following:
> >
> > TypeRef #17 (01000011)
> > -------------------------------------------------------
> > Token:             0x01000011
> > ResolutionScope:   0x00000000
> > TypeRefName:       COccManager
> >
> > Note the nil resolution scope. However, there is no EXPORTEDTYPE table
> > in this single-module assembly. The type CoccManager is also never
> > defined in the assembly. In fact, this type seems to only be
> referenced
> > once in the entire application. Here is the ILDASM for the reference.
> It
> > is a global function method parameter:
> >
> >         Method #154
> >         -------------------------------------------------------
> >                 MethodName: AfxEnableControlContainer (0600009A)
> >                 Flags     : [Public] [Static] [ReuseSlot]
> [PinvokeImpl]
> > [HasSecurity]  (00006016)
> >                 RVA       : 0x000075ee
> >                 ImplFlags : [Native] [Unmanaged] [PreserveSig]
> > (00000085)
> >                 CallCnvntn: [DEFAULT]
> >                 ReturnType: CMOD_OPT
> > System.Runtime.CompilerServices.CallConvCdecl Void
> >                 1 Arguments
> >                         Argument #1:  Ptr ValueClass COccManager
> >                 CustomAttribute #1 (0c00007e)
> >
> -------------------------------------------------------
> >                         CustomAttribute Type: 0a00000b
> >                         CustomAttributeName:
> > System.Security.SuppressUnmanagedCodeSecurityAttribute :: instance
> void
> > .ctor()
> >                         Length: 4
> >                         Value : 01 00 00 00
> > >                <
> >                         ctor args: ()
> >
> > How the heck I am suppose to resolve this TypeRef? Thanks in advance
> for
> > any clues?
> >
> >
> >
>
> You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
> subscribe to other DevelopMentor lists at http://discuss.develop.com.
>

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to