c++ - CoCreateInstance 失败,错误为 "System can not find the file specified"

标签 c++ com

我有 .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/

相关文章:

c++ - SONAR——C代码分析

excel - 通讯错误?两次打开工作簿会导致引用损坏

c++ - 如何结束COM自动化过程中执行的进程

c# - COM-Interop:将 .NET Framework 版本从 2.0 更改为 4.0 - 我是否也应该更改 Guid?

c++ - vector 容量显示为 0,即使它是保留的

c++ - 为什么模板非类型参数不能是类类型

c# - 如何在 C++ 中读取 .proto 格式的二进制文件?

c++ - 符号名称后的@@符号是什么意思

com - COM 中空智能指针的奇怪使用

java - 有没有运行良好的 Java COM 库?