Не удается загрузить 64-разрядный элемент управления ActiveX - PullRequest
0 голосов
/ 28 апреля 2020

Я создаю 64-разрядный элемент управления ActiveX и успешно зарегистрировал его. Затем я создаю проект MF C и хочу вставить в него элемент управления ActiveX.

При открытии диалогового окна «Вставка элемента управления ActiveX» я не могу найти свой элемент управления ActiveX.

Если я изменю 64-битное управление на 32-битное, проблема будет исправлена. Почему? MF C не поддерживает 64-битные элементы управления ActiveX?

image

Странно то, что я могу загрузить 64-битный элемент управления с помощью теста управления ActiveX Контейнерный инструмент - "testcon.exe", который поддерживается QT5. Контейнер тестирования ActiveX, поддерживаемый QT5

UUID управления в regedit

UUID управления

1 Ответ

0 голосов
/ 28 апреля 2020

Это не потому, что MF C не поддерживает 64-битную версию, а потому, что IDE Visual Studio и поддерживающие ее инструменты GUI работают только на 32-битной версии.
Поддерживает ли Visual Studio 2019 64-битную пользовательскую визуализацию?
Q:

У меня есть специальный тип для отображения, но тип требует 64-битную DLL, поэтому я должен скомпилировать пользовательский визуализатор в x64. Однако я получил ошибку изображения при просмотре переменной. Поддерживает ли visual studio 2019 компилятор визуализатора в 64-битном режиме? Или потому что VS является 32-битной программой, поэтому визуализатору также нужно быть 32-битным?

A:

Visual Studio IDE является 32-битной (и из-за множества существующих расширений и длинной истории Visual Studio IDE, это не просто так.)

Поэтому любые расширения, включая пользовательские визуализаторы, должны быть 32-битными.

Если вы не можете получить 32-битные сборка вашей dll, тогда вам понадобится какой-то контейнерный процесс и затем с ним свяжутся (это вряд ли будет легко, потому что ни один из внутренних API не будет доступен для вспомогательного процесса).

Visual Studio 64 бит? [закрыто]
Q:

Есть ли вообще 64-битная Visual Studio? Почему бы и нет?

Типичный короткий A:

Нет, но 32-разрядная версия прекрасно работает на 64-разрядных Windows.


Необходимо установить ActiveX Control для 32-битной и 64-битной систем соответственно, импортировать 32-битную ActiveX для создания 32-битного приложения и добавить параметр для компиляции приложения в 64-битной версии.

...