Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Как правильно заполнить PCopyDataStruct?   Найти похожие ветки 

 
Aleksandr.   (2005-01-25 16:02) [0]

Мне надо из одного приложения в другое передать packed record. Объявляю его как:

 PCrtInfo = ^TCrtInfo;
 TCrtInfo = packed record
   UserID     : integer;
   Localed    : boolean;
   Dir        : PChar;
   FileTime   : longint;
 end;


Правильно ли будет параметры для сообщения WM_CopyData заполнять как


var
 P : PCopyDataStruct;
 I : PCrtInfo;
begin
...
 I.UserID:=10123;
 I.Localed:=true;
 I.Dir:=StrNew("C:\Test");
 I.FileTime:=FileAge("C:\Test\test01.txt");
 P.dwData:=ID;
 P.cbData:=SizeOf(I);
 P.lpData:=I;
 SendMessage(RecWnd,WM_CopyData,Handle,LParam(@P))
end


Или размер для cbData надо высчитывать иначе - сплюсовывая размеры для целых и булевых с длиной строки в Dir?


 
MBo ©   (2005-01-25 16:20) [1]

Твою структуру в таком виде передавать бесполезно - указатель PChar в другом процессе не имеет смысла, дв и в размер ее будет входить только размер указателя. Сделай вместо него строку постоянной длины (string[255], например)


 
Digitman ©   (2005-01-25 16:50) [2]


> Aleksandr.   (25.01.05 16:02)  


слушай
> MBo ©   (25.01.05 16:20) [1]


 
MBo ©   (2005-01-25 17:08) [3]

Сразу не обратил внимания вот на что еще:
переменную P делай либо типа TCopyDataStruct, либо оставь PCopyDataStruct, но тогда выдели память под нее и @ убери из SendMessage. Почти то же самое относится и к I : PCrtInfo;


 
Aleksandr.   (2005-01-25 17:19) [4]

Спасибо... Я глядел в Rus WinApi, там сразу и сампл был со строкой. То ли устарел он, то ли я чего не так понял...



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

Текущий архив: 2005.03.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.055 c
4-1106691985
Iron Man
2005-01-26 01:26
2005.03.06
Событие перед уничтожением приложения


1-1109078181
Aleks
2005-02-22 16:16
2005.03.06
как присвоить группе переменных группу данных


3-1107773072
Nick_ck
2005-02-07 13:44
2005.03.06
упаковать DBF через ADO


14-1108144122
Мазут Береговой
2005-02-11 20:48
2005.03.06
Денежные переводы стали "нетрудовыми доходами"


1-1108563511
TeNY
2005-02-16 17:18
2005.03.06
как зная Pointer загрузить строку?