Существующие клиенты на основе модели компонентных объектов Microsoft (COM)
можно динамически связать с управляемыми компонентами, так как все управляемые
типы непосредственно поддерживают стандартный интерфейс модели компонентных
объектов Microsoft (COM)— IDispatch. Способ, которым это выполняет общеязыковая
среда выполнения CLR платформы .NET, чем-то похож на традиционное динамическое
связывание в Visual Basic. Без всяких усилий в области программирования общеязыковая
среда выполнения CLR немедленно генерирует реализацию IDispatch, основываясь
на метаданных, обнаруженных в сборке компонента. Несмотря на то, что клиент
динамического связывания может быть написан в Visual C++ 6.0 с использованием
интеллектуального указателя библиотеки шаблонных классов ATL или даже непосредственного
вызова методов IDispatch, проще это можно продемонстрировать, взяв клиент, который
Regasm SomeManagedClass.dll /tlb
Затем в Visual Basic можно добавить к проекту ссылку на файл SomeManagedClass.tlb. Это сделает доступным класс ManagedClass. Кроме того, обычно требуется добавить ссылку на библиотеку типов mscorlib. tlb, чтобы открыть доступ к различным типам .NET. И еще: сборку SomeManagedClass.dll нужно либо скопировать в папку клиента, либо занести в глобальный кэш сборок. Следующий фрагмент программы на VB демонстрирует динамическое связывание с компонентом .NET:
Private Sub Commandl_Click() ' Частный
Dim obj As Object ' Как Объект
Set obj = CreateObject(
"SomeManagedClass.ManagedClass") ' программный
идентификатор
i = obj.AddEmUp(3, 4)
MsgBox (i) End Sub ' Конец
Введя этот текст, можно создать из него исполняемый файл ЕХЕ и запустить его на выполнение. В результате появится окно с сообщением, в котором будет выведен результат — число 7, показанное на рис. 15.6.
Рис. 15.6. Клиент Visual Basic для компонента .NET
Как строить и запускать исполняемый файл на Visual Basic
1. File => Make Projectl.exe.
2. Щелкните на ОК.
3. Дважды щелкните на Project.exe в Проводнике (Windows Explorer).