Architecture Net



         

Раннее связывание клиента на основе модели компонентных объектов Microsoft (COM) с компонентами .NET - часть 3


/verbose Displays extra information

/? or /help Display usage help message

Вот более русифицированный вариант этой выдачи:

Regasm AssemblyPath [параметры]

Где параметры могут быть любыми из следующих.

/unregister Отменить регистрацию типов

/tlb[:FileName] Указанный файл библиотеки типов

/regfile[:FileName] Указанное имя выходного файла

/codebase (кодовая страница) Устанавливает кодовую страницу

в системном реестре

/registered (зарегистрированный) Обращаться только к предварительно

зарегистрированным библиотекам

типов

/nologo Предотвращает вывод протокола

/silent (тихий) Предотвращает отображение сообщений

/verbose (подробно) Выводит дополнительную информацию

/? или /help (помощь) Вывести сообщение - справку

по использованию

Теперь давайте воспользуемся утилитами Tlbexp. exe (Assembly to Type Library Converter— Конвертер сборки в библиотеку типов) и Regasm.exe (Assembly Registration Utility — Утилита регистрации сборки) в реальном примере. Рассмотрим следующий код библиотеки классов на управляемом C++ в папке SomeManagedClass. Утилита Tlbexp.exe (Assembly to Type Library Converter — Конвертер сборки в библиотеку типов) откроет для модели компонентных объектов Microsoft (COM) только управляемые общедоступные (public) типы. Именно поэтому класс ManagedClass объявлен как public _gc (общедоступный со сборкой мусора). Кроме того, без общедоступного конструктора по умолчанию (т.е. не имеющего параметров) клиенты на основе модели компонентных объектов Microsoft (COM) не могут создавать типы при вызове CoCreatelnstance или CoCreatelnstanceEx. Таким образом, в нижеприведенном тексте класс ManagedClass имеет общедоступный конструктор по умолчанию.


Вы можете вспомнить из собственного опыта программирования, что клиент на основе модели компонентных объектов Microsoft (COM) никогда непосредственно не ссылается на СОМ-класс, а вместо этого имеет дело только с интерфейсом класса. Однако по приведенному ниже тексту нельзя сказать, что он реализует какой-либо интерфейс. Значение AutoDual (Автодуальный), которое задано в атрибуте Classlnterface (ClassInterfaceType: : AutoDual), автоматически генерирует дуальный (двойственный) интерфейс для доступа к классу ManagedClass. Это очень удобно, хотя и несколько необычно, так как не существует способа задать версию интерфейса, генерируемого со значением AutoDual (Автодуальный). Позднее мы укажем альтернативный AutoDual (Автодуальному) вариант, в котором можно будет иметь версии, но потребуется непосредственно определить по крайней мере один интерфейс




Содержание  Назад  Вперед