我已将托管接口添加到本机 C++ 应用程序,该应用程序实例化 CLR,创建自定义 appDomainManager,并提供将托管程序集加载到本机进程的调用。在我的本机 C++ LoadDLL() 函数中,我希望能够通过调用 LoadLibrary(dllPath) 来测试 .net 与 C++ 的传入 dll,我认为这将返回托管程序集的失败 (NULL),但我发现它而是返回一个句柄(这在非托管进程中当前没有运行 CLR)。这是对托管程序集的非托管 LoadLibrary() 调用的正常行为吗?
我不确定我是否理解 LoadLibrary 甚至可以找到合适的入口点来在托管程序集中进行测试。我知道(一种可能的)解决问题的方法,以及我计划实现的方法,就是使用 CLR 实例访问 .net 反射 API 并检查 DLL 是否首先在那里管理......但我'对 LoadLibrary() 没有返回失败的事实感到困惑,我想了解我在这里缺少什么。行为是否未定义,是否应该始终返回句柄,还是取决于托管程序集的配置?任何指向参考的链接表示赞赏。
编辑:
问题在评论中回答,关闭。