0

我们有一个专为 Reader X / XI 设计的托管 C++ Adob​​e Reader 插件。它在 Windows 7 中运行良好,但在 Windows XP 中会引发 COM 错误 - 未注册类。

奇怪的是,这只是在我们将项目从 vs2005 项目更新到 vs2010 之后才发生的。旧的 vs2005 插件工作得很好。有人知道为什么会这样吗?当我们迁移到 2010 时,我们只是使用了标准项目自动升级。所有其余代码都是相同的。

编辑:关于这个问题的更多说明

插件 DLL 本身加载得很好。只有当我们尝试通过 COM 互操作加载 .Net 4 dll 时,我们才遇到异常。

以前,我们尝试加载的 dll 是用 .net 2.0 编写的,并且在 Windows XP 中加载得很好。但是 .Net 4 dll 只会在 Win7 中加载。请注意,.Net 3.5 似乎与 2.0 一样工作。只有 .net 4 会中断(我们将完全相同的代码重新编译为 2.0、3.5 和 4.0 以进行检查)。

4

1 回答 1

0

原来问题是 Adob​​e 的保护模式和尝试通过 COM 互操作加载 .Net 4 DLL 的组合,但仅限于 Windows XP。

奇怪的是...更改任何这些变量,一切正常。.Net 3.5 和 2.0 在保护模式下都可以正常加载。Windows 7 在保护模式下加载 .Net 4 dll 很好。

在 Adob​​e for Windows XP 中关闭保护模式可以解决问题,因此 DLL 可以正常加载。

我希望这可以帮助遇到此问题的其他人。

于 2013-03-19T18:11:21.370 回答