проблема с unboxing в managed C++:
short src = 48;
Object* obj = __box (src); //boxing
short dst = *dynamic_cast<__box short*>(obj); //unboxing
при анбоксинге ловлю NullReferenceException. проблема именно с short — для int все пучком.
пробовал вместо short использовать System::Int16 и __int16, а вместо dynamic_cast — __try_cast и прочие — тот же эксепшн.
смотрел свою сборку в анакрине — анбоксинг выглядит весьма странно:
local1 = (short) (Int16) local0 as Int16;
временно сделал через Convert::ToInt16
Здравствуйте, Roman Avramov, Вы писали:
RA>проблема с unboxing в managed C++:
RA>RA>short src = 48;
RA>Object* obj = __box (src); //boxing
RA>short dst = *dynamic_cast<__box short*>(obj); //unboxing
RA>
RA>при анбоксинге ловлю NullReferenceException. проблема именно с short — для int все пучком.
RA>пробовал вместо short использовать System::Int16 и __int16, а вместо dynamic_cast — __try_cast и прочие — тот же эксепшн.
В релизе работает а дебаге нет Все проходит пучком Странно Вроде это пример из MSDN и он должен работать