Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
arist
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 100
#1

Выделение памяти средствами Win32 (COM) - C++

13.06.2011, 15:18. Просмотров 1020. Ответов 0
Метки нет (Все метки)

Чем отличаются варианты выделения памяти?
1) SHAlloc
2) SHGetMalloc...IMalloc::Alloc
3) CoGetMalloc...IMalloc::Alloc
4) CoTaskMemAlloc
5) new
Можно ли их смешивать? Например:
p=CoTaskMemAlloc(n);
...
SHFree(p);
или
p=IMalloc::Alloc(n);
...
CoTaskMemFree(p);

Насколько я понимаю все 5 вариантов выделяют память в куче текущего процесса и одинаковыми способами, т.е. выделив память одним из вариантов можно освободить её любым из них. Это так?

В каких случаях возникает Heap corruption?

И всё это применительно к DLL...
Т.е. есть приложение которое грузит мою DLL (DLL - на самом деле СОМ-объект). В одной из функций СОМ-объекта я должен выделить память и записать туда строку для возврата в приложение. При выделении (или несколько позже) происходят (не всегда) всякие исключения, типа:
First-chance exception... access violation ...
или
HEAP[explorer.exe]: Heap missing last entry in committed range near af7ba0

P.S. приложение - это explorer.exe
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2011, 15:18     Выделение памяти средствами Win32 (COM)
Посмотрите здесь:

Выделение памяти C++
Выделение памяти C++
C++ Выделение памяти...
Разработать программу, реализующую многопочность средствами среды Win32 C++
C++ Выделение памяти
C++ Не выделение памяти
Выделение памяти C++
Выделение памяти C++
Выделение памяти C++
C++ Выделение памяти
Выделение памяти C++
Выделение памяти C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 08:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru