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