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


         

Создание с помощью управляемого



Создание с помощью управляемого C++ клиента на основе модели компонентных объектов Microsoft (COM) без метаданных

Ниже описан еще один способ вызова существующего компонента, построенного на основе модели компонентных объектов Microsoft (COM), из программы на управляемом C++. В этом способе не нужно создавать сборку упаковщика с помощью Tlbimp.exe. Вместо использования Tlbimp.exe для создания сборки LegacyCOMObj, среда во время выполнения создает интерфейсный класс непосредственно из зарегистрированной библиотеки типов компонента, построенного на основе модели компонентных объектов Microsoft (COM). Заметим, что в этой версии клиента на управляемом C++ для действующего компонента на основе модели компонентных объектов Microsoft (COM) директива fusing для доступа к сборке LEGACYCOMSERVERLib. dll уже не нужна.

//ManagedCOMClientWithoutMetadata.cpp
fusing <mscorlib.dll>
using namespace System;
// использование пространства имен Система;
using namespace Reflection;
// использование пространства имен
Reflection (Отражение);
void main()
{
Object *args[] = {_box(3), _box (4)};
_box int *sum;
Type *type = Type::GetTypeFromProgID(
"LegacyCOMServer.LegacyCOMObj.1");
Object *object = Activator::CreateInstance(type);
// Объект
*object = Активатор:: Createlnstance (тип);
sum = static_cast<_box int *>(type->InvokeMember( // сумма
"AddEmUp", // метод, который будет вызван
BindingFlags::InvokeMethod, // флажки редактора связей
О, // объект редактора
object, // целевой объект
args // массив параметров
));
Console::WriteLine(sum); // сумма
}

Если вы запустите эту программу, то увидите выдачу, которая ничем не отличается от выдач предыдущих трех программ клиентов, основанных на модели компонентных объектов Microsoft (COM). Единственное отличие заключается в том, что в данном случае нет необходимости создавать сборку упаковщика, а потому и нет необходимости инсталлировать ее на клиентской машине (что, если подумать хорошенько, — весьма неплохо).




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





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий