我们正在将我们的32位应用程序(.Net Framework 1.1)转换为 64位(Framework 2.0)。转换后,项目正在构建并成功运行,除非在某些地方我们正在使用ActiveX控制 iPlotx 和滑块。当目标平台为32位时,转换后的应用程序运行正常,但在64位模式下,它显示类未注册错误。请注意,我测试的机器是64位。
错误:未注册类(HRESULT异常:0x80040154 (REGDB_E_CLASSNOTREG))
经过一些搜索后,我理解的是 - 因为我的应用程序运行为64位,因为 ActiveX仅支持32位,因此出现此错误。
我想知道我对问题的理解是否正确以及是否有解决此问题的方法除了让应用程序在64位计算机上以32位运行。
答案 0 :(得分:0)
您的理解不太正确。 64位应用程序当然支持ActiveX,但仅使用64位控件。 32位控件在64位应用程序中不起作用(反之亦然)。如果你有64位版本的控件,它应该运行。询问您的供应商是否有64位版本。
如果没有这样的版本可用,则解决方法是在32位进程中托管控件,并在该进程和您的进程之间来回切换请求。但是,如果必须将其集成到GUI中,则会相当复杂。