Core CLR 自定义的Host官方推荐的一种形式(第一种)

本文介绍了.NET Core CLR自定义Host的两种官方推荐方式,特别是第一种方式,它作为对第二种更灵活形式的封装,提供了更简单的控制托管代码的方法。这两种方式都适用于自定义CLR Host以满足特定业务需求。文章将详细阐述第一种形式的实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Core CLR 自定义的Host官方推荐的一种形式(第一种)

.Net Core CLR提供两种Host API访问 托管代码的形式,按照微软官方的说法,一种是通过CoreClr.DLL来直接调用托管生成的DLL程序集,另外一种是通过CoreClr里面的C导出函数GetCLRRuntimeHost获取到IID_ICLRRuntimeHost4然后访问托管代码。

 

其实这两种形式可以合二为一,第一种更简单,更方便的控制托管代码。第二种更灵活些,在一些老旧的主机上会用到这些代码,实际上第一种形式是扩充了第二种访问形式,进行了一个整体封装,原理上其实还是一样的。

 

实际上这两种形式的实现都可以,作为自定义CLR Host进行定制自己一些业务上或者需求上的作业。

 

假如说,你要自己定制Core CLR Host ,name这两种方式是最好的选择,也是微提供表层API的实现形式

 

第二种形式实现: 在上一篇博客中,地址:https://www.cnblogs.com/tangyanzhi1111/p/10524451.html

第一种形式如下实现:

 

  1 #include "stdafx.h"
  2 
  3 dataSize, double* data, report_callback_ptr callbackFunction);
  4 void BuildTpaList(const char* directory, const char* extension, std::string& tpaList);
  5 
  6 typedef void (STDMETHODCALLTYPE MainMethodFp)(LPWSTR* args);
  7 
  8 typedef char*(*doWork_ptr)(char* abc);
  9 int main(int argc, char* argv[])
 10 {
 11     HMODULE coreClr = LoadLibraryExA((LPCSTR)("coreclr.dll"), NULL, 0);
 12 
 13     coreclr_initialize_ptr initializeCoreClr = (coreclr_initialize_ptr)GetProcAddress(coreClr, "coreclr_initialize");
 14     coreclr_creat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值