Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > MS Visual C++, Использование ^%


Автор: KostyaKKostyaK 22.1.2009, 09:07
Имеется ActiveX - компонент стороннего производителя. 
Согласно описанию (возможно, устаревшему) он имеет 2 метода:
write(VARIANT* pData) и read(VARIANT* pData).

При подключении ссылки на этот компонент в среде Visual C++ 2008 для проекта типа "Windows Forms" эти методы переопределяются как
write(System::Object) и read(System::Object).
Но при вызове их в коде требуются уже параметры:
write(System::Object ^Data);
read(System::Object ^% pData).


Метод write выполняет без ошибок в следуюшем коде:
VARIANT byte_var;

// Инициализирует новый экземпляр структуры IntPtr 
// с использованием заданного указателя на тип VARIANT
System::IntPtr* pvar = new System::IntPtr(&byte_var);

// GetObjectForNativeVariant преобразует COM VARIANT в объект.
System::Object ^obj = System::Runtime::InteropServices::Marshal::GetObjectForNativeVariant(*pvar);

// Вызываю функцию, передавая ей требуемый параметр
DWORD error_code = ActiveX->Write(obj);


read пока не получается вызвать без ошибки исполнения. Какой вид будет иметь код для метода read? 

Автор: BorisVorontsov 22.1.2009, 11:04
Ну, вообще-то Windows Forms -- это .NET, а оный обсуждается тут: http://forum.vingrad.ru/forum/dotNET-forum.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)