Трассировка и отладка в .NET

       

Утилита Oleview exe показывает



Рис 15 4 Утилита Oleview exe показывает содержимое библиотеки типов, построенной на основе модели компонентных объектов Microsoft (COM) Библиотека типов была сгенерирована из сборки NET с помощью утилиты Tlbexp. exe (Assembly to Type Library Converter — Конвертер сборки в библиотеку типов)


//COMClientOfManagedClass cpp
ttinclude <iostream h>
#include <objbase.h>
Iimport "C \WINNT\Microsoft NET\Framework\vl.0.2914\
mscorlib.tlb"
ttimport "..\SomeManagedClass\Debug\SomeManagedClass.tlb"
no_namespace named_guids
void main()
{
{
// вложенные фигурные скобки предотвращают


// исключение указателя (pointer exception)'
CoInitialize(NULL); // ПУСТОЙ УКАЗАТЕЛЬ
_ManagedClassPtr psc(CLSID_ManagedClass);
int i = psc->AddEmUp(3, 4);
cout « i « endl « flush;
}
CoUninitialize ();
}

Однако компоненты NET будут недоступны для приложений клиентов, построенных на основе модели компонентных объектов Microsoft (COM), пока требуемые элементы не будут внесены в системный реестр и сборка не станет доступной для загрузчика классов общеязыковой среды выполнения CLR (либо локально, либо в глобальном кэше сборки) Для регистрации используется утилита регистрации сборки Regasm.exe (Assembly Registration Utility). Она читает метаданные в сборке компонентов .NET и создает соответствующие записи в системном реестре. Это позволяет любому клиенту на основе модели компонентных объектов Microsoft (COM) получать доступ к компонентам .NET так, как будто это обычные компоненты, построенные на основе модели компонентных объектов Microsoft (COM).
Например, для регистрации вышеуказанного компонента .NET как компонента на основе модели компонентных объектов Microsoft (COM) используйте следующую команду:

Regasm SomeMenagedClass.dll

Затем можно использовать утилиту Regedt32 . exe для проверки того, что информация была корректно занесена в системный реестр, что и показано на Рисунок 15.5.
Как только закончена регистрация сборки SomeManagedClass. dll в качестве компонента на основе модели компонентных объектов Microsoft (COM), следует инсталлировать сборку. Можно, конечно, все выполнить, просто скопировав сборку SomeManagedClass.dll в папку клиента COMClientOfManagedClass. Сделав это, можно, наконец, выполнить клиент COMClientOfManagedClass, построенный на основе модели компонентных объектов Microsoft (COM). После запуска этого клиента, как и ожидалось, будет выведено число.



Содержание раздела