我可以编辑具有 x64 ActiveX 控件的 MFC 对话框吗?

Posted

技术标签:

【中文标题】我可以编辑具有 x64 ActiveX 控件的 MFC 对话框吗?【英文标题】:Can I edit a MFC dialog that has an x64 ActiveX control? 【发布时间】:2019-06-21 15:11:02 【问题描述】:

我在设置为 x64 的 MFC 项目中添加了一个 ActiveX 控件。所以我也必须将 ActiveX 注册到 x64。

现在的问题是,当我想在 Visual Studio 2017 中打开对话框时,我收到 ActiveX 未注册的错误。如果我将它注册到 x32,我可以打开它,但是我无法启动窗口。

我认为是因为VS运行在x32,但是没有x64版本。

一种解决方法是在我想打开对话框时将其注册为 x32,并在运行时注册回 x64,但这似乎很麻烦。

【问题讨论】:

为什么不能同时注册win32和x64?注册表中有 32 位和 64 位的单独键。我们一直在为 win32 和 x64 构建我们的东西。 32 位 CLSID 内容注册到 HKLM\Software\Wow6432Node\Classes\CLSID,而 64 位内容注册到 HKLM\Software\Classes\CLSID。 我不知道,谢谢。如果我们想将程序从一种设置切换到另一种设置,我们总是重新注册。 我现在可以使用它了。谢谢 @joseph-willcoxson 我们有同样的问题,如上所述。不幸的是,我们应用程序的架构使得 x64 和 win32 dll 不能同时共存。因此,我们只能在使用 win32 构建时编辑 MFC 对话框。有什么想法吗? 为什么不能同时存在? 【参考方案1】:

我不知道可以为 x32 和 x64 注册 .dll。我现在使用标准的 RegSvr32 命令。

我们通常在两者之间切换,但这不适用于 Visual Studio。

【讨论】:

以上是关于我可以编辑具有 x64 ActiveX 控件的 MFC 对话框吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何开发ActiveX控件

VS2017 ATL创建ActiveX编程要点

如何访问 MFC 中的 activex 控件?

如何使用 MFC 以编程方式更改 ActiveX 控件的属性?

如何在activex控件中传输id_edit_copy msg

如何根据浏览器在同一页面上嵌入 32 位或 64 位 ActiveX 控件?