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

Can I edit a MFC dialog that has an x64 ActiveX control?

提问人:Daniel Bauer 提问时间:1/28/2019 更新时间:1/29/2019 访问量:102

问:

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

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

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

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

Visual Studio MFC ActiveX 32 位-64 位

评论

2赞 Joseph Willcoxson 1/29/2019
为什么不能同时为 win32 和 x64 注册它?注册表中有 32 位和 64 位的单独项。我们一直在为 win32 和 x64 构建我们的东西。32 位 CLSID 内容注册到 HKLM\Software\Wow6432Node\Classes\CLSID,而 64 位内容注册到 HKLM\Software\Classes\CLSID。
0赞 Daniel Bauer 1/29/2019
我不知道,谢谢。如果我们想将程序从一个设置切换到另一个设置,我们总是重新注册。
0赞 Daniel Bauer 1/29/2019
我现在让它工作了。谢谢
0赞 Juv 6/28/2020
@joseph-willcoxson 如上所述,我们遇到了同样的问题。不幸的是,我们应用程序的体系结构使得 x64 和 win32 dll 不能同时共存。因此,我们只能在使用 win32 版本时编辑 MFC 对话框。有什么想法吗?
0赞 Joseph Willcoxson 6/29/2020
为什么它们不能同时存在?

答:

0赞 Daniel Bauer 1/29/2019 #1

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

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