2010-01-27 6 views
3

У нас есть .Net DLL. Нам нужно вызвать эту DLL из приложения VB. Какие процедуры нам нужно соблюдать?Вызов .Net классов из Visual Basic 6

+0

Дубликат этого вопроса - хотя ответы здесь намного лучше, поэтому, возможно, нам стоит закрыть другой вопрос не этот. http://stackoverflow.com/questions/2131111/use-net-in-vb6-or-classical-asp – MarkJ

ответ

1

В последний раз я сделал это, он стал настолько колючие (некоторые неуместные вопросы, связанные с COM + , развертывание и т. д.), что я на самом деле ched границы COM, и переписал интерфейс как веб-сервис POX, разговаривая с обработчиком (ashx) в .NET. Я хотел бы дать серьезного рассмотрения этого подход ... (если вам не нужно делить окно ручки или аналогичный)


Если вы действительно хочет COM API, вам необходимо сгенерировать COM-отозваны обертка; это в основном случай:

  • обеспечивает необходимые типы/методы являются общедоступными
  • маркировки сборки/типы как [ComVisible(true)]
  • используя tlbexe экспортировать библиотеку типов, если вам нужно
  • с помощью regasm для регистрации типа в COM (либо в GAC, либо в фиксированном месте на диске)

После этого ваш VB6 должен просто увидеть его как еще один COM-пакет, но я сильно рекомендую вам ограничить этот интерфейс до минимума; это не изменяет дружественность, и переадресация интерфейса в стиле VB6 (т. е. где вы можете уйти с добавлением метода, не нарушая бинарную совместимость), здесь нет.

+0

Одинаковые шаги мы следуем, и, наконец, мы получили проблему в приложении VB. Ошибка компиляции. Определенный пользователем тип не определен – subramani

+0

@subramani - он перечисляет ссылку в VB6 IDE? И ссылаетесь ли вы на конкретный тип или интерфейс? –

+0

YES его показывает в ссылках. открытый класс – subramani

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