Параметры сообщения: когда освобождать память?
От: Kislookhin  
Дата: 10.09.04 07:46
Оценка:
Братцы, может кто пояснит мне такую вещь.
Допустим есть некое сообщение WM_APP + 1, в lParam хочется передать объект, скажем LPCSTR. Причем сообщение посылается с помощью PostMessage, то есть строка создается на куче, так? Вопрос: каким образом и где нужно делать delete этой строке? В обработчике сообщения? Не очевидно...
Re: Параметры сообщения: когда освобождать память?
От: rus blood Россия  
Дата: 10.09.04 07:51
Оценка:
Здравствуйте, Kislookhin, Вы писали:

K>Братцы, может кто пояснит мне такую вещь.

K>Допустим есть некое сообщение WM_APP + 1, в lParam хочется передать объект, скажем LPCSTR. Причем сообщение посылается с помощью PostMessage, то есть строка создается на куче, так?
Именно так.

Вопрос: каким образом и где нужно делать delete этой строке? В обработчике сообщения? Не очевидно...
Очевидно...
Имею скафандр — готов путешествовать!
Re: Параметры сообщения: когда освобождать память?
От: Denis Россия http://blogs.gotdotnet.ru/personal/Denis
Дата: 10.09.04 07:54
Оценка:
одно из решений — запихать всё в класс с reference counting. так COM устроен
Re[2]: Параметры сообщения: когда освобождать память?
От: Kislookhin  
Дата: 10.09.04 08:00
Оценка:
Здравствуйте, rus blood, Вы писали:

K>>Допустим есть некое сообщение WM_APP + 1, в lParam хочется передать объект, скажем LPCSTR. Причем сообщение посылается с помощью PostMessage, то есть строка создается на куче, так?

RB>Именно так.

RB>Вопрос: каким образом и где нужно делать delete этой строке? В обработчике сообщения? Не очевидно...

RB>Очевидно...

Гм. Почему тогда вы не делаете то же самое с параметрами системных сообщений перехватываемыми обработчиками? И кто тогда занимается особождением этих многочисленных ссылок на офигенные по размерам структуры типа NMHDR* и т.п.?
Re[3]: Параметры сообщения: когда освобождать память?
От: Softwarer http://softwarer.ru
Дата: 10.09.04 10:44
Оценка:
Здравствуйте, Kislookhin, Вы писали:

K>Гм. Почему тогда вы не делаете то же самое с параметрами системных сообщений перехватываемыми обработчиками?


Потому что этого не предписано в документации.

K>И кто тогда занимается особождением этих многочисленных ссылок на офигенные по размерам структуры типа NMHDR* и т.п.?


Для начала — отчего ты уверен, где и как размещены эти структуры?

Сделать в системе сборку мусора — кропотливая, но нужная и понятная работа. Но вот подумать, как система будет анализировать твой LPARAM, решая, то ли это указатель на что-то, то ли "просто число" — хотел бы я посмотреть на подобный код
Re[3]: Параметры сообщения: когда освобождать память?
От: rus blood Россия  
Дата: 10.09.04 10:58
Оценка:
Здравствуйте, Kislookhin, Вы писали:

K>Гм. Почему тогда вы не делаете то же самое с параметрами системных сообщений перехватываемыми обработчиками? И кто тогда занимается особождением этих многочисленных ссылок на офигенные по размерам структуры типа NMHDR* и т.п.?


А почему ты думаешь, что они отправляются post-ом ?
Имею скафандр — готов путешествовать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.