2015-04-16 3 views
1

На самом деле мы запускаем приложение x86 для Windows Desktop C++ Qt с элементом управления ActiveX HTMLHelpCtrl.ocx (все модули x86), чтобы вызвать .hm HtmlHelp приложения. Теперь мы хотим перенести наше приложение на x64. К сожалению, использовать текущий x86 HTMLHelpCtrl.ocx невозможно. Доступна ли 64-разрядная версия HMTLHelpCtrl.ocx? Или что нужно, чтобы иметь возможность использовать элемент управления x86 ActiveX в x64?Как я могу использовать элемент управления HTMLHelpCtrl.ocx на платформе x64

Мы уже пробовали это сделать так: Using a 32-bit COM Object from a 64-bit Application. Но это не вариант, потому что у нас есть требование заставить его работать без административных прав. Поэтому мы не можем изменить значения реестра, упомянутые в статье.

+0

COM ocx (или dll) должен быть зарегистрирован. Вам нужно найти способ зарегистрировать его. – douyw

+0

Невозможно зарегистрировать материал без административных прав –

ответ

0

Решение довольно просто: вам необходимо выполнить the steps that you refer to в вашем установщике. Вот где вам понадобятся административные права, и именно там должны быть обработаны такие вещи.

Если вы не можете, вам нужно разделить приложение на два процесса: один из которых - 32 бит, а другой - 64 бит. Расположите 32-битный объект в 32-битном процессе и запустите материал, которому требуется большая память в 64-битном процессе.

+0

Требование - иметь возможность запускать приложение (и устанавливать его) без административных прав. Это установка perUser. В этом случае мы можем получить доступ к некоторым ветвям в реестре (например, HKEY_CURRENT_USER и ниже), но не HKEY_CLASSES_ROOT и HKEY_LOCAL_MACHINE –

+0

@MartinPakula Это требование не согласуется с тем, что вы пытаетесь сделать. Что-то должно дать: либо разрешить установку администратора, либо не использовать 32-битные COM-объекты из 64-разрядных приложений. Это не означает, что вы не можете делать то, что собираетесь намереваться. См. Редактирование. –

+0

@KubaOber Как-то возможно создать 64-битный COM-объект, как этот ocx в этом конкретном случае? – Gannic

Смежные вопросы