![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Все теже Сообщения
SammIk © (2003-04-05 18:13:00)Мастера, доброи недели вам.
Есть проблема. Отсылаю в wParam указатель на число integer
В другои программе заполняю по указателю переменную
Но Выдается RUN TIME ошибка?!?!?!((
Чем леуить? Уму не приложу(((
Одина из мох попыток :
beep(400,10);
p:=GetMemory(sizeof(integer));
p^:=12345;
lparam:=pinteger(wparam)^;
(*
Далие дает ошибку.
если закоментить все ок(
*)
CopyMemory(pinteger(wparam),p,sizeof(integer));
freemem(p);
Diamond Cat (2003-04-08 15:29:00) [1]
> Ihor Osov"yak
я через что передавал???
Ihor Osov'yak (2003-04-08 00:59:00) [2]2 Иван Шихалев © (07.04.03 20:50)
> Остается верным. Т.е. следует выделять память через GlobalAlloc, а не GetMem.
Вы чего-то путаете. Прочитайте хелп к соотв. функции. Или проведите експеримент.
Diamond Cat © (06.04.03 03:51)
integer следует давать через lparam или wparam.
SammIk (2003-04-07 20:50:00) [3]
Иван Шихалев (2003-04-07 20:50:00) [4]Замечу, что можно и так - без WM_COPYDATA данные через указатель передавать - иногда свое сообщение удобнее. Но:
> У каждой программы свое адресное пространство, адрес переменной
> в одном процессе не имеет смысла в другом.
Остается верным. Т.е. следует выделять память черезGlobalAlloc, а неGetMem.
Diamond Cat (2003-04-06 03:51:00) [5]можно отсылать прямо сразу число типа
sendmessage(hwnd,wm_user+1,122,221); ну и принимать соответсвенно таже как значение, по идее придет именно число
SammIk (2003-04-05 20:31:00) [6]
> MBo
Спсибо, за совет)
MBo (2003-04-05 18:24:00) [7]У каждой программы свое адресное пространство, адрес переменной в одном процессе не имеет смысла в другом.
Для передачи данных можно WM_COPYDATA использовать.