О разнице при использовании неуправляемого ActiveX OCX с языками VB и C # в Visual Studio 2010? - PullRequest
2 голосов
/ 12 декабря 2011

Я работаю над торговым программным обеспечением, которое подключается к ActiveX API от Interactive Brokers.

Interactive Brokers предоставляет примерную программу VB, которая использует ActiveX для связи с программным обеспечением, которое я установил, и должен войти в систему. Я проверил структуру примера VB, которая не настолько сложна, что он добавил зарегистрированный ActiveX "TWS.OCX" , Когда я проверяю ссылку на пример, структура выглядит следующим образом. У нас их два: Interop.TWSLib и AxInterop.TWSLib, и я заметил, что в примере используется

 Public WithEvents Tws1 As AxTWSLib.AxTws

, чтобы начать с помощью более поздней. Пожалуйста, проверьте изображение из примера VB, у которого есть два интерактивных брокера, связанные объект или ссылка, готовая для использования:

занятой кот http://i.minus.com/inIxvP1TUi2gt.jpg

Теперь я попробовал использовать язык C # для подключения к ActiveX OCX. Я быстро нашел Interop.TWSLib в списке ссылок COM, но у меня нет места, где найти AxInterop.TWSLib ?? !! Из-за имени AX, я предполагаю, что это означает преобразование неуправляемого ocx в управляемый, который будет использоваться для c # или vb. Но как я мог получить это под C #? Фактически, я уже использовал какой-то метод и событие в Interop.TWSLib, но теперь у меня возникают проблемы с созданием так называемого экземпляра CONTRACT, и я обнаружил, что пример VB просто использует createContract под AxInterop.TWSLib вместо инициализации интерфейса контракта в Interop.TWSLib .

Пожалуйста, проверьте изображение ниже

занятой кот http://i.minus.com/i3VeHR0ppdKJu.jpg

1 Ответ

3 голосов
/ 12 декабря 2011

Сборка Interop.Xxx.dll - это оболочка .NET для интерфейса COM-сервера. Он генерируется автоматически при добавлении ссылки на компонент COM или при ручном запуске Tlbimp.exe.

Сборка AxInterop.Xxx.dll представляет собой автоматически сгенерированный элемент управления Winforms (производный от AxHost), который позволяет помещать компонент ActiveX в форму. Он генерируется автоматически, когда вы помещаете элемент управления на панель инструментов или когда запускаете утилиту Aximp.exe вручную.

На сегодняшний день самый простой способ обуздать такой элемент управления - добавить его в панель инструментов. Который затем позволяет вам просто перетащить его на форму с дизайнером. Это автоматически добавляет необходимые ссылки. Щелкните правой кнопкой на панели инструментов, выберите «Выбрать элементы». Используйте вкладку «Обзор» и выберите OCX. Или выберите его запись на вкладке COM.

...