![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Гость_rav |
|
|||
|
Unregistered |
Всем доброго времени суток.
Есть вот такой код: ISkinObjectPtr pRootObject=g_pSkin->GetTemplates(); ISkinObjectPtr pControlObject=pRootObject->FindObject(bstrObjectName); CComQIPtr<ISkinStatic> pSkinStatic(pControlObject); Классы основаны на COM. Нужно избавиться от smart pointer, поскольку моя древняя студия их не поддерживает. Помогите пожалуйста! |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Хочешь избавиться от смарт-указателей -- лови все места, где может произойти потеря указателя (утечка памяти) и удаляй объект "указуемый" в ручную.
ISkinStatic *pSkinStatic = &pControlObject; -- так ты получешь адресс в обычный указатель. Я так понимаю smart-указатель здесь -- это шаблон CComQIPtr. Может быть имеет смысл заменить этот смарт указатель на стандартные из STL или на BOOST? Я не знаю, что такое COM, поэтому не знаю, возможно ли это.. Если нет, я бы посоветовал соорудить smart-указатель руками. Это несложно. Какой из этих вариантов тебе подходит?? |
|||
|
||||
| Гость_rav |
|
|||
|
Unregistered |
Если честно, не знаю. Я плохо понимаю С++. Посмотрим. Поэкспериметрируем.
|
|||
|
||||
| Earnest |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Нереально... кучу проблем огребешь. Особенно, если
Гораздо реальнее. Можно списать слова... Но еще лучше - перейти на 6-ю студию (не 7-ю, потому что она с предыдущими не очень совместима). Что мешает-то? -------------------- ... |
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |