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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Замена 2х меню в MDI приложении http://www.cyberforum.ru/cpp-beginners/thread496316.html
Уважаемые коллеги, помогите разобратья. Я занимаюсь руссификацией MDI приложения, все ресурсы подгружаю из dll. Встала задача переключиться на русские меню, а их 2 штуки. Одно (IDR_MAINFRAME) отображается, когда документ не загружен, а другое (IDR_DOCMENU), когда документ загружен. Переключение между языками выполняется из меню документа (т.е. активно IDR_DOCMENU). Обработчик находится в...
C++ WinAPI Как узнать родителя, породившего процесс, с помощью WinAPI? Столкнулся с поблемой: Проблема следующая- не знаю яз. Си но хочу написать функцию на Си для Java (JNI - JAVA NATIVE INTERFACE) чтобы она показывала родительский процесс запустившего мою Java-программу (к примеру получить: Started by explorer.exe). OS: Win2k Java по всей видимости такого не умеет- поэтому буду ковырять Си. Может у кого есть готовые решения- буду рад их заполучить.... http://www.cyberforum.ru/cpp-beginners/thread496208.html
Получение из другой формы ТStringList C++
Не знаю куда это больше подходит, но появилась необходимость из Form2 получить доступ к ТStringList *myList = new ТStringList(); находящемуся в Form1. Есть ли какая то простая возможность это сделать?
C++ Как мне вызвать GetGuiResources в консольном приложении VS6?
Приветствую! Подскажите плиз, как мне вызвать GetGuiResources в консольном приложении VS6. Код: #include <windows.h> #include <winuser.h> HWND hWnd; DWORD dwProcID; HANDLE hProcess; DWORD dwGDI;
Visual C++ Как правильно создать ListControl в VisualC++7 используя MFC? http://www.cyberforum.ru/cpp-beginners/thread496041.html
Добрый день! Я хочу создать List control, вот код: // создаю List control void __ListCtrl::Create(CWnd *pParentWnd,const RECT& rcClient) { m_dwStyle = WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|/*LVS_SHAREIMAGELISTS| LVS_SHOWSELALWAYS|*/LVS_SINGLESEL; if(!m_ListCtrl.Create(m_dwStyle,rcClient,pParentWnd, AFX_IDW_PANE_FIRST)) TRACE0('Failed to create list control
C++ Открылись вакансии в крупную иностранную компанию Крупная иностранная компания, занимающаяся продвижением на Интернет-рынок виртуальных казино, с возможностями карьерного роса, приглашает сотрудников на следующие вакансии: 1.UNIX-разработчик (UNIX Team Leader). Требования: 1.муж/жен от 23 до 45 лет; 2.высшее техническое образование; 3.опыт работы по программированию на C++ под UNIX от 3 лет; 4.глубокое знание С++, FreeBsd; 5.опыт... подробнее

Показать сообщение отдельно
arist
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 100
13.06.2011, 15:18     Выделение памяти средствами Win32 (COM)
Чем отличаются варианты выделения памяти?
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
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru