ICeeGen

更新:2007 年 11 月

提供用于动态代码编译的方法。

interface ICeeGen : IUnknown {
        
    HRESULT AddSectionReloc (
        HCEESECTION            section,
        ULONG                  offset,
        HCEESECTION            relativeTo,     
        CeeSectionRelocType    relocType
    );
        
    HRESULT AllocateMethodBuffer (  
        ULONG                  cchBuffer, 
        UCHAR                  **lpBuffer,
        ULONG                  *RVA
    );
        
    HRESULT ComputePointer (
        HCEESECTION            section,
        ULONG                  RVA, 
        UCHAR                  **lpBuffer
    );
        
    HRESULT EmitString (
        LPWSTR                 lpString,
        ULONG                  *RVA
    );
        
    HRESULT GenerateCeeFile ();
        
    HRESULT GenerateCeeMemoryImage (
        void                   **ppImage
    );
        
    HRESULT GetIlSection (
        HCEESECTION            *section
    );
        
    HRESULT GetIMapTokenIface (     
        IUnknown               **pIMapToken
    );
        
    HRESULT GetMethodBuffer (   
        ULONG                  RVA,
        UCHAR                  **lpBuffer
    );
        
    HRESULT GetSectionBlock (
        HCEESECTION            section,
        ULONG                  len,
        ULONG                  align     = 1,
        void                   **ppBytes = 0
    );
        
    HRESULT GetSectionCreate (
        const char             *name,
        DWORD                  flags,
        HCEESECTION            *section
    );
        
    HRESULT GetSectionDataLen (
        HCEESECTION            section,
        ULONG                  *dataLen
    );
        
    HRESULT GetString (
        ULONG                  RVA,
        LPWSTR                 *lpString
    );
        
    HRESULT GetStringSection (
        HCEESECTION            *section
    );
        
    HRESULT TruncateSection (
        HCEESECTION            section,
        ULONG                  len
    );
        
};

方法

方法

说明

ICeeGen::AddSectionReloc 方法

向基本代码中添加一条 .reloc 指令。

ICeeGen::AllocateMethodBuffer 方法

为方法创建指定大小的缓冲区并获取该方法的相对虚拟地址。

ICeeGen::ComputePointer 方法

确定指定代码段的缓冲区。

ICeeGen::EmitString 方法

将指定的字符串发出到基本代码中。

ICeeGen::GenerateCeeFile 方法

生成一个基本代码文件并使其包含当前加载到此 ICeeGen 中的基本代码。

ICeeGen::GenerateCeeMemoryImage 方法

在内存中生成基本代码的映像。

ICeeGen::GetIlSection 方法

获取由指定句柄引用的中间语言基本代码节。

ICeeGen::GetIMapTokenIface 方法

获取由指定标记所引用的接口。

ICeeGen::GetMethodBuffer 方法

获取指定相对虚拟地址处的方法的适当大小的缓冲区。

ICeeGen::GetSectionBlock 方法

获取基本代码的节块。

ICeeGen::GetSectionCreate 方法

生成并获取使用指定名称和标志值的代码段。

ICeeGen::GetSectionDataLen 方法

获取指定节的长度。

ICeeGen::GetString 方法

获取存储在指定相对虚拟地址的字符串。

ICeeGen::GetStringSection 方法

获取由指定句柄引用的代码段的字符串表示形式。

ICeeGen::TruncateSection 方法

根据指定长度截断指定代码段。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**Cor.h

**库:**在 MsCorEE.dll 中用作资源

**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

请参见

其他资源

元数据接口