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?
>
>
> -- Brent Rector, .NET Wise Owl
> Demeanor for .NET - an obfuscation utility
> http://www.wiseowl.com/Products/Products.aspx
>
> 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