Вниз
Скачать: CL | DM;

Ткните меня носом в FAQ   Найти похожие ветки 

 
TUser   (2004-05-24 17:55) [0]

Простая штука, вроде, но чего-то никак не получается. Надо передать в программу некоторое кол-во инфы для обработки + указатель на структуру, в которой будет возвращен результат. Делаю так (в разных вариациях)
type
 PInf:=^TInf;
 TInf = packed record
  ...
  end;
 PRes:=^Tres;
 TRes = packed record
  ...
  end;
Поля записей - интегеры, строки (точнее - PChar), массивы, + хэндел той проги, которая посылает все это дело.
Посылаю так
var
 inf:TInf; res:TRes;
 sendMessage(H,W,LongInt(@Inf), LongInt(@,Res));

После посылания читаю в той проге, куда посылаю
 r:=PRes(LParam);
 i:=TInf (WParam);
В результате читается какая-то лажа. Строки пробовал передавать и как PChar и как String. Читается какое-то барахло. При попытке обратится к PChar вылетает AV. Где грабли (понятно, что в руках, конечно, но покажите, как правильно сделать такие штуки)?


 
VMcL ©   (2004-05-24 17:58) [1]

>>TUser  (24.05.04 17:55)

Взаимодействие межпроцессное или внутрипроцессное? Если первое, то см. WM_COPYDATA.


 
WebErr ©   (2004-05-24 18:07) [2]


>  i:=TInf (WParam);

А надо PInf(WPARAM);


 
WebErr ©   (2004-05-24 18:11) [3]

Под PChar память, надеюсь выделена?


 
TUser   (2004-05-24 18:19) [4]

PInf. Это я описался. Взаимодействие межпроцессное. За CopyData спасибо.


 
TUser ©   (2004-05-25 07:06) [5]

Кстати, заметил такую штуку. Если отправить WM_COPYDATA с PChar"ом не только тому окну, которому оно предназначено, но  и всем остальным, то вываливается "Страница недоступна в автономном режиме. Подключиться?" Если щелкнуть "Да", то все равно ничего не откроется. К чему бы эксплореру так реагировать на WM_COPYDATA?


 
Digitman ©   (2004-05-25 15:50) [6]


> К чему бы эксплореру так реагировать на WM_COPYDATA?

любопытно, что ты пытаешься "впарить" Эксплореру в данных, посылаемых с пом. WM_COPYDATA ..


 
VMcL ©   (2004-05-25 15:56) [7]

>>TUser ©  (25.05.04 07:06) [5]

Потому что экплорер не глупей твоей программы будет :) Ему тоже удобно WM_COPYDATA пользоваться, так же как и многим другим программам. Так что WM_COPYDATA следует посылать не бродкастом, а конкретному окну или нескольким окнам.


 
WebErr ©   (2004-05-25 18:30) [8]


> Ткните меня носом в FAQ

С удовольствием! :))))



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
3-1084719105
Malya
2004-05-16 18:51
2004.06.06
Проблема с парадоксом :((((


4-1082601486
DeHuC
2004-04-22 06:38
2004.06.06
TWebBrowser + эмуляция нажатия TAB


14-1084811479
Рулон Обоев
2004-05-17 20:31
2004.06.06
FAT-16


1-1085166307
Lena19
2004-05-21 23:05
2004.06.06
как узнать размер буквы в пикселях не помещая ее на канву


14-1085033396
Serrrg
2004-05-20 10:09
2004.06.06
Программирование микропроцессоров




   Наверх