Preeti Mathur UCWL Ответов: 0

Использование OCX DLL различных целевых платформ в C# VS 2012


Всем привет,

Я работаю над приложением, которое использует Oracle в качестве базы данных, а также имеет сокет и winshock, которые должны быть реализованы в нем.

Для Oracle я уже установил клиент Oracle, и приложение отлично работает с программированием Oracle и сокетов. Но для того, чтобы Oracle выполнялась по мере необходимости, платформа приложения должна быть установлена на x64.

Теперь, когда я добавляю элемент управления Winshock в приложение, приложение перестает работать. Поскольку элементы управления Winshock требует целевой платформы должен быть установлен на x86 или любой ЦП. Во всяком случае, та же реализация кода отлично работает для другого проекта, где целевой платформой является x86.

Пожалуйста, предложите мне какой-нибудь метод, чтобы использовать OCX и DLL разных платформ в одном проекте. Я работаю над Windows 8.1 Pro, 64-битной операционной системой с Visual Studio 2012 и клиентом Oracle 11g.

Любая помощь будет высоко оценена.

Что я уже пробовал:

Я попытался зарегистрировать как Oracle (OraOleDB11.DDL), так и Winshock(MSWINSCK.OCX) к обеим версиям regsvr32, т. е. c:\Windows\system32 и c:\Windows\syswow64.

Кроме того, оба рабочих находят в независимых приложениях. Но оба они не работают вместе в одном приложении.

Richard Deeming

Предполагая, что вы имеете в виду в winsock контроль (без "н"), это древний и давно умерший контроль из эпохи VB6. Платформа .NET framework имеет встроенные классы, которые могут полностью заменить этот элемент управления и которые будут работать с любой целевой платформой.

RickZeeland

Возможный способ-создать отдельный "хост" в режиме x86, который содержит ваш элемент управления и обрабатывает ввод-вывод. Затем хост может взаимодействовать с вашим x64-приложением, например, через каналы, что является очень быстрым методом. Дополнительные сведения см. В документации WCF.

0 Ответов