Приложение .NET, для которого я несу ответственность, использует сторонний элемент управления, который доступен только в виде 32-битного COM-компонента. Я несколько раз стучал головой о стены, пытаясь найти способ разрешить компоненту и приложению работать вместе в 64-битном режиме. Мы получили некоторую помощь от поставщика контроля - они не планируют поставлять 64-разрядную версию компонента в ближайшее время, но они приложили решение C#, которое использует элемент управления WebBrowser для загрузки компонента и решения на C++, которое использует некоторое удовольствие OLE кода, чтобы выкопать ссылку на интерфейс управления из WebBrowser.Что произойдет, если я использую OLE Automation для загрузки 32-битного элемента управления в 64-битном приложении?
Хорошей новостью является то, что код выполняет то, что он должен делать; компонент правильно загружается внутри 64-битного решения, и я углубляю свои старые, пятнистые знания ATL, чтобы проделать свой путь через C++-решение, чтобы выяснить, как получить интерфейс управления в нашем C#.
Моя забота состоит в том, что я не понимаю эту конфигурацию достаточно хорошо, чтобы определить, какие проблемы я могу подвергать нашему приложению. Кто-нибудь сделал что-нибудь подобное? Мое главное беспокойство состоит в том, что мы можем начать видеть таинственные аварии, которые я, в конечном счете, вернусь к значению, искажаемому 32-битным управлением, и я вернусь туда, где я начал.
Элемент управления EMODELViewControl от Solidworks, который включен в легкий просмотрщик CAD-изображений EDrawings. Это не особенно сложный элемент управления, хотя их настройка автоматизации немного интересна.
Благодарности! Я не уверен, почему я не смог найти тех, кто использовал поиск, но они очень полезны. –