Architecture Net



         

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


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). После запуска этого клиента, как и ожидалось, будет выведено число.

5.gif



Рис. 15.5. Утилита Regedt32.exe показывает содержимое системного реестра для идентификатора класса для сборки .NET, которая была зарегистрирована как компонент, построенный на основе модели компонентных объектов Microsoft (COM)

CompEbook.ru Железо, дизайн, обучение и другие




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