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.

Reply via email to