Здравствуйте, netch80, Вы писали:
N>Здравствуйте, indee, Вы писали:
I>>Нужно получит экземпляра объекта по его адресу:
N>Платформа какая? N>Если 64-битная винда, то указатель — 64 бита, а long — 32 (не спрашивай почему они такие извращенцы, когда даже в дотнете long — 64). N>Тебе нужен uintptr_t, а не long.
N>Но в общем случае такие пляски нужны только в особых случаях, типа передачи через WinAPI. А зачем в обычном коде приводить указатель к целому?
I>>Правильно ли это, как это можно улучшить/обезопасить и правильно обвернуть MyObj* pObj = (MyObj*)p в try-catch?
N>Тут оборачивать не надо, если исходное значение было правильным указателем. А вот если нет причины ему доверять — то нельзя доверять и указателю без проверки.
N>А так уже сказали — указатель на объект базового класса решает >=90% подобных проблем.
64-битная винда.
Адрес хранится в БД, поэтому указатель на объект базового класса использовать не могу.