“为不同的目标平台制作的互操作。”和“ActiveX 未正确注册”

Posted

技术标签:

【中文标题】“为不同的目标平台制作的互操作。”和“ActiveX 未正确注册”【英文标题】:"interops made for a different target platorm." and "ActiveX not properly registered" 【发布时间】:2013-08-26 16:06:35 【问题描述】:

感谢您提供的所有帮助...我以前从未见过此错误...我有几个供应商提供的 DLL 用于与签名捕获设备通信。我们在 XP x86 机器上构建我们的 C# windows 应用程序平台目标设置为“任何 cpu”。当应用程序在 Win7 32 位计算机上运行时,它工作正常。当它在 Win7 64 位计算机上运行时,它会失败。

在“调试模式”下在 Win 7 x64 上运行 Visual Studio 2010 调试器工作正常。在 Win7 x64 上以 Release 模式运行失败。

我可以将平台更改为以 x64 为目标,然后发布模式提供“为不同目标平台制作的互操作”。当我删除并重新创建 64 位目标的互操作时,我得到“ActiveX 未正确注册”。

提前谢谢你。

【问题讨论】:

【参考方案1】:

确保您的模块不依赖于 32 位库。 使用Dependency Walker 或Fuslogvw.exe 诊断模块加载失败。

要互操作 32/64 位 COM,请参阅 Access x86 COM from x64 .NET

【讨论】:

【参考方案2】:

我的解决方案是将 Project->Properties->Build->Platform Target 从“any cpu”更改为“x86”。该应用程序现在可以在 win7 64 位和 32 位以及 XP x86 上运行。

【讨论】:

以上是关于“为不同的目标平台制作的互操作。”和“ActiveX 未正确注册”的主要内容,如果未能解决你的问题,请参考以下文章

vue路由的active-class和exact-active-class区别

Active Directory 和 Active Directory LDS 中的字段

使用 rails 和 active_paypal_adaptive_payment 执行预批准付款

引导和反应,在单选按钮上分配 .active 类

Prometheus 报告 node_memory_Active_bytes 和 free -b 的值不同

IE 11 tr:active 选择器是不是损坏?