Windows 7 64-bit - ActiveX зарегистрировался, на не создается
От: ConstantinZ  
Дата: 28.11.15 15:46
Оценка:
Добрый день!

Столкнулся с такой проблемой —
использую из своего .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()

В чем может быть проблема?
.net activex windows 7
Re: Windows 7 64-bit - ActiveX зарегистрировался, на не создается
От: Vi2 Удмуртия http://www.adem.ru
Дата: 28.11.15 16:56
Оценка:
Здравствуйте, ConstantinZ, Вы писали:

CZ>В чем может быть проблема?


В том, что твоё .NET приложение является 64-битным и не может использовать 32 разрядный код.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: Windows 7 64-bit - ActiveX зарегистрировался, на не создается
От: ConstantinZ  
Дата: 28.11.15 17:08
Оценка:
Здравствуйте, 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 зарегистрировался, на не создается
От: SаNNy Россия  
Дата: 28.11.15 17:17
Оценка:
Здравствуйте, ConstantinZ, Вы писали:

CZ>Т.е. нужно скомпилировать приложение явно, как 32-х разрядное,

CZ>указав в настройках билда Platform target x86 (у меня сейчас стоит Any CPU),
CZ>и тогда оно будет нормально работать с 32-х битным ActiveX в 64-bit Windows, я правильно понимаю?

да
Re[3]: Windows 7 64-bit - ActiveX зарегистрировался, на не создается
От: pugv Россия  
Дата: 18.12.15 10:48
Оценка:
Здравствуйте, ConstantinZ, Вы писали:

CZ>Т.е. нужно скомпилировать приложение явно, как 32-х разрядное,


Можно не перекомпилировать, есть еще corflags /32bit+
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.