2012-02-27 96 views
2

对于64位操作系统,C#应用程序将使用BeauGague ActiveX控件(www.beaugauge.com)。 enter image description here64位窗口中的ActiveX控件

编译成功,但运行时显示错误“HRESULT:0x80040154(REGDB_E_CLASSNOTREG)”。 我能做些什么来解决问题?

+0

[x64上的Hosting PreviewHandlers给出了可能的重复给出REGDB_E_CLASSNOTREG](http://stackoverflow.com/questions/1374204/hosting-previewhandlers-on-x64-gives-regdb-e-classnotreg) – GSerg 2012-02-27 12:29:56

+0

可能的重复[问题与x64应用程序和ActiveX控件](http://stackoverflow.com/questions/2282323/problem-with-x64-application-and-activex-control) – 2012-02-27 14:06:22

回答

4

它在设计模式下工作,因为Visual Studio是一个32位程序。但不是在运行时,在VS2008和更早版本中,该项目的目标是针对AnyCPU。在64位版本的Windows上为您提供64位进程。无法加载仅作为32位DLL提供的ActiveX组件。

它看起来并不像你的供应商最近做得很多,以跟上发展。解决方法很简单:在“解决方案资源管理器”窗口的“属性”,“编译”选项卡中右键单击您的EXE项目。将平台目标设置更改为x86。这可确保您的程序始终以32位进程运行。

+2

这不是一个“rokaround”本身 - 大多数软件运行64位使IE为零,而办公套件为32位(办公室也是64位,但是如果你不愿意使用它,大多数情况下是使用者和沉重的Excel用户),因为它具有没有好处。 – TomTom 2012-02-27 14:03:16