Столкнулся с такой проблемой —
использую из своего .NET приложения (Framework v2.0) ActiveX dsoframer.ocx
(который является OLE- контейнером)
При работе под Winddows XP и Windows 7 32-bit он нормально регистрируется с помощью regsvr32 и создается в моем приложении.
Однако в Windows 7 64-bit, хотя regsvr32 отрабатывает (я запускаю версию, которая находится в WINDOWS\SysWow64) и выдает сообщение, что
DllRegisterServer успешно выполнилась, при запуске приложения и попытки создать в нем ActiveX выдается ошибка "Класс не зарегистрирован" —
System.Runtime.InteropServices.COMException (0x80040154): Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
at System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid)
at System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
at System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
at System.Windows.Forms.AxHost.CreateInstance()
at System.Windows.Forms.AxHost.GetOcxCreate()
at System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
at System.Windows.Forms.AxHost.CreateHandle()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.AxHost.EndInit()
at OutlayNew.OutlayNewForm.InitializeComponent()
at OutlayNew.OutlayNewForm..ctor()
at OutlayNew.Program.Main()
Здравствуйте, Vi2, Вы писали:
Vi2>Здравствуйте, ConstantinZ, Вы писали:
CZ>>В чем может быть проблема?
Vi2>В том, что твоё .NET приложение является 64-битным и не может использовать 32 разрядный код.
Т.е. нужно скомпилировать приложение явно, как 32-х разрядное,
указав в настройках билда Platform target x86 (у меня сейчас стоит Any CPU),
и тогда оно будет нормально работать с 32-х битным ActiveX в 64-bit Windows, я правильно понимаю?
Re[3]: Windows 7 64-bit - ActiveX зарегистрировался, на не создается
Здравствуйте, ConstantinZ, Вы писали:
CZ>Т.е. нужно скомпилировать приложение явно, как 32-х разрядное, CZ>указав в настройках билда Platform target x86 (у меня сейчас стоит Any CPU), CZ>и тогда оно будет нормально работать с 32-х битным ActiveX в 64-bit Windows, я правильно понимаю?
да
Re[3]: Windows 7 64-bit - ActiveX зарегистрировался, на не создается