Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разработка 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 |