IHostAssemblyStore::P rovideAssembly - 文件夹程序集的实现
IHostAssemblyStore::ProvideAssembly - Implementation for assemblies from folders
我正在尝试弄清楚如何在托管 clr 宿主方案中从与本机.exe文件不同的文件夹中加载 AppDomainManager 程序集。
有没有人做过IHostAssemblyStore::P rovideAssembly实现,将从文件夹中加载 AppDomainManager 程序集,并希望共享它?
我是这个WinApi/OLE/任何编程的新手,我不知道如何在 C++ 中从磁盘上的文件中获取 IStream*。
或者是否有另一种方法从任意文件夹加载默认域的应用程序域管理器?
SHCreateStreamOnFile 会将程序集从光盘加载到 IStream 中,例如:
HRESULT hr = SHCreateStreamOnFile(assemblyPath, STGM_READWRITE, ppStmAssemblyImage);
陷阱:
CLR 将为一个程序集多次调用 ProvideAssembly 实现。
考虑到处理器体系结构,请确保在AssemblyBindInfo中使用postPolicyIdentity在正确的调用中返回"正确的"位:
如果您的程序集是构建"Any CPU"
但是当postPolicyIdentity包含例如 "processorarchitecture=amd64"
结束时,runtimeHost->Start()
调用将失败。
相反,您必须返回COR_E_FILENOTFOUND (0x80070002)
直到处理器体系结构匹配。
相关文章:
- 内联程序集printf将整数解释为地址
- 正在解码MSVC 32位版本的程序集(作业).没有手术做什么
- 具有外部"c"和程序集的未定义函数
- 用于将C++代码转换为 Web 程序集的脚本未终止
- 为什么我的C++程序的程序集输出充满了 .ascii,没有汇编代码?
- CoreCLR 中的检测探查器 - 将帮助程序程序集加载到 dotnet 进程的方法
- 不同于按值传递和常量引用传递的程序集
- 为什么在堆栈和堆上创建变量会产生相同的程序集代码?
- C++变量在调用 x64 程序集函数后重置为 0
- 如何将C++子例程链接到 x86 程序集程序?
- Qt 网页程序集缓存
- 测试操作系统时执行程序集"sti"时虚拟框崩溃
- 为什么从 constexpr 引用生成的程序集代码与从 constexpr 指针生成的程序集代码不同?
- 将内联程序集尾调用函数尾声替换为用于x86/x64 msvc的Intrinsics
- 解析 C# 中的C++程序集
- 64 位进程中的 AnyCPU C# DLL 无法引用 64 位C++ DLL(给出错误:无法加载文件或程序集)
- 使用CLANG内联程序集创建C++预增量操作
- 是否可以在C++中基于程序集输出(.dll或.exe)定义变量
- IHostAssemblyStore::P rovideAssembly - 文件夹程序集的实现
- 使用x86程序集的信号量实现