关于ASP.NET与CLR相互关系的一些总结

  CLR(COM服务器)

  CLR作为一个COM服务器实现在MSCorWks.dll文件中。安装.NET Framework时,表示CLR的COM服务器被注册到Windows的注册表里。

  MSCorEE.dll(垫片)

  MSCorEE.dll的职责是判断创建何种版本的CLR。 非托管应用程序宿主调用MSCorEE.dll(shim)中CorBindToRuntimeEx函数或者另一个相似的函数来创建CLR COM的实例。     

  一台机器可以安装多个版本的CLR,但在机器中只有一个版本的MSCorEE.dll文件。以上两者之间的关系如下代码所示(c++):MSCorEE.dll(垫片)---->CLR(COM服务器)

#include <Windows.h>
#include 
<MSCorEE.h>
#include 
<stdio.h>
#pragma comment(lib,"mscoree.lib")
int main(int argc, CHAR* argv[])
{
    ICLRRuntimeHost 
*pClrHost;
    
//调用<MSCorEE.h>中的CorBindToRuntimeEx()生成COM服务器
    HRESULT hr= CorBindToRuntimeEx(NULL, NULL, NULL, CLSID_CLRRuntimeHost, IID_ICLRRuntimeHost, (LPVOID*)&pClrHost); 
    
//启动clr
    pClrHost->Start();   
     //............................其他操作   
     
//终止clr
     pClrHost->Stop();
     getchar();
     
return 0;
}

NET技术关于ASP.NET与CLR相互关系的一些总结,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。