我有 .NET COM dll,我正试图从非托管 C++ 代码加载它。我正在尝试从我的代码中执行 CoCreateInstance
,但失败并出现错误“系统找不到指定的文件”。 (HRESULT 值为 0x80070002
)。只是为了查看组件的注册是否有任何问题,我从我的测试人员那里尝试了相同的代码。在那里我能够正确地创建实例。此外,奇怪的是,在我的主应用程序 CoCreateInstance
的 Debug模式下成功但仅在 Release模式下失败。有谁知道可能出了什么问题,或者我怎样才能找到问题的根本原因?我已经在 dependency walker 中打开了 COM dll,它没有显示任何错误。任何帮助将不胜感激。
最佳答案
COM 通常不会生成 ERROR_FILE_NOT_FOUND。但是 CLR 肯定会这样做,例如在尝试查找依赖程序集时很常见。请务必从 Release build 目录运行 regasm/codebase。并使用 Fuslogvw.exe 来跟踪程序集解析问题。
关于c++ - CoCreateInstance 失败,错误为 "System can not find the file specified",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6582532/