Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > FastShareMem


Автор: dvamaster 10.8.2009, 13:30
Доброго времени суток!

Надоело таскать менеджер памяти borlandmm.dll за собой

Первое

нашел альтернативу FastShareMem

Посмотрел на исходники и задумался.

Разшаривание памяти происходит да счет вывода стандартного (не из borlandmm.dll) менерджера памяти в глобал
причем это делается за счет регистрации гобального класса окна  smile (я ф шоке)

wc.lpfnWndProc := @MemPack;
if RegisterClass(wc)=0 then

MemPack это менеджер памяти

если зарегистрирован класс окна то вытаскивается его процедура (т.е. наш менеджер памяти)

У меня ум за разум заходит  smile 

Второе


Собственно вопрос!

Какие WinAPI функции могут выделять межпроцессные блоки памяти?

MSDN советует использовать Heap***, но опять же не сообщается о их возможностях как и всех остальных (о межпроцессном взаимодействии)

Автор: bems 10.8.2009, 14:22
Расшареный блок можно выделить CreateFileMapping. Но у тебя есть же исходник, вот и читай

Автор: dvamaster 11.8.2009, 05:59
Я забил на FastShareMem, изучив исходник, нашел явный баг.

Если запустить две копии приложения, то закрыв первую копию, получим не работающую вторую!

http://www.codexterity.com/download/fastsharemem-2.10.zip

Вот и решил попробовать стандарными WinAPI средствами, но это тема не сюда уже.

Автор: CodeMonkey 11.8.2009, 11:18
FastMM-то чем не устроил?

Автор: dvamaster 12.8.2009, 06:31
Еще не смотрел  smile 

Автор: Akella 26.2.2013, 16:01
Как бороться в FastShareMem.pas Warning`ами
Symbol 'TMemoryManager' is deprecated 
Symbol 'GetMemoryManager' is deprecated
Symbol 'SetMemoryManager' is deprecated
в Delphi 2007?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)