小编may*_*sam的帖子

CLR分析器:使用DefineAssemblyRef时出现问题

我想写一个CLR分析器来挂钩我们的应用程序功能GetILFunctionBody/SetILFunctionBody.

我想使用DefineAssemblyRef来导入我们的c#dll(用于IL代码),在这段代码中,DefineAssemblyRef总是返回True?我的dll必须签名吗?是否需要在全局程序集缓存(GAC)中安装?

     HRESULT CProfilerCallback::JITCompilationStarted
        (
        UINT functionId,
        BOOL fIsSafeToBlock
        )
    {
        ClassID classID;
        ModuleID moduleID;
        mdToken token;
        wchar_t wszClass[512];
        wchar_t wszMethod[512];
        HRESULT result = S_OK;
        ClassID classId = 0;
        ModuleID moduleId = 0;
        mdToken tkMethod = 0;

        // Get the moduleID and tkMethod    
        m_pICorProfilerInfo->GetFunctionInfo(functionId, &classId, &moduleId, &tkMethod);

        if(!GetMethodNameFromFunctionId(functionId,wszClass,wszMethod))
        {return S_FALSE;}


        if(wcscmp(wszMethod,L"FunctionName") == 0)
        {
            // Get the metadata import
            IMetaDataImport* pMetaDataImport = NULL;
            DebugBreak();
            result = m_pICorProfilerInfo->GetModuleMetaData
                (
                moduleId,
                ofRead, 
                IID_IMetaDataImport,
                (IUnknown** )&pMetaDataImport
                );


            if (FAILED(result)) …
Run Code Online (Sandbox Code Playgroud)

.net c# hook window clr-profiling-api

19
推荐指数
1
解决办法
831
查看次数

标签 统计

.net ×1

c# ×1

clr-profiling-api ×1

hook ×1

window ×1