2012-02-27 63 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