![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глючная структура
XeLax © (2004-06-30 13:26:00)Есть структура которой надо обмениваться с другим приложением. Вот ее код:
TDayPrice = record
count : integer;
items : array [0..19] of record
iTime : TTime;
Week : array [1..7] of real;
end;
end;
TTariffs = record
Count : integer;
NightBeg : TTime;
NightEnd : TTime;
HalfNight : integer;
Items : array [0..19] of record
Name : string[50];
Mode : (day, night);
Min : integer;
Access : (noint, gamesprogs, gamesint, uasites, abs);
price : TDayprice;
NightParams : record
price : array [1..7] of real;
halfprice : array [1..7] of real;
Hourprice : array [1..7] of real;
end;
end;
end;
PShareInf = ^TShareInf;
TShareInf = Record
ttWn:HWND;
tyWn:HWND;
vbWn : HWND;
r11:HWND;
r21:HWND;
r32:HWND;
tar : TTariffs; // если убрать эту строчку то все ОК
code: Integer;
wparam: WPARAM;
lparam: LPARAM;
ext : LongInt;
ext1 : LongInt;
End;
Именно структурой ShareInf я и пытаюсь обмениваться с другим приложением. Пробовал просто записвіать ее в тип. файл, пробовал и через файл-маппинг, - єто приводит к краху. Причем, если убрать строчку tar: Ttariffs - тогда все ок. Что в структуре ttariffs такого глючного ?
juiceman (2004-06-30 15:32:00) [1]2False_Delirium
спасибо, это помогло!
False_Delirium (2004-06-30 14:04:00) [2]
TWeekPeriodArray = array [1..7] of real ;
TCell = record
iTime : TTime;
Week : TWeekPeriodArray ;
end ;
PNightParams = ^TNightParams ;
TNightParams = record
price : TWeekPeriodArray ;
halfprice : TWeekPeriodArray ;
Hourprice : TWeekPeriodArray ;
end;
PDayPrice = ^TDayPrice ;
TDayPrice = record
count : integer;
items : array [0..19] of Tcell
end;
PTariffItem = ^TTariffItem ;
TTariffItem = record
Name : string[50];
Mode : (day, night);
Min : integer;
Access : (noint, gamesprogs, gamesint, uasites, abs);
price : PDayPrice;
NightParams : PNightParams ;
end;
PTariffs = ^TTariffs ;
TTariffs = record
Count : integer;
NightBeg : TTime;
NightEnd : TTime;
HalfNight : integer;
Items : array [0..19] of TTariffItem ; (PTariffItem ?)
end;
PShareInf = ^TShareInf;
TShareInf = Record
ttWn:HWND;
tyWn:HWND;
vbWn : HWND;
r11:HWND;
r21:HWND;
r32:HWND;
tar : PTariffs; // если убрать эту строчку то все ОК
code: Integer;
wparam: WPARAM;
lparam: LPARAM;
ext : LongInt;
ext1 : LongInt;
End;
это я так, мимо проходил...
juiceman (2004-06-30 14:03:00) [3]Я конечно попробую, но думаю это не поможет. Понимаете, все работало ок как на обеих сторонах до момента добавления подструктуры tariffs. Через обычный файл даже не получается. ОК, сейчас попробую ...
Тимохов (2004-06-30 14:01:00) [4]если хотите, могу пример дать с wm_copydata...
juiceman (2004-06-30 13:56:00) [5]Сорри за двуличность, вопрос мой
Тимохов (2004-06-30 13:56:00) [6]Не хотите воспользоваться сообщением wm_copydata?
те же filemap, только скрытые от вас...
juiceman (2004-06-30 13:54:00) [7]
> TUser
MapHandle:=CreateFileMapping(INVALID_HANDLE_VALUE, nil, PAGE_READWRITE, 0, SizeOf(TShareInf), 'MyShareMap');
if MapHandle=0 then
begin
ShowMessage('FileMapping íå ñîçäàí!');
Exit;
end;
ShareInf:=MapViewOfFile(MapHandle, FILE_MAP_ALL_ACCESS, 0, 0, SizeOf(TShareInf));
if ShareInf=nil then
begin
ShowMessage('ShareInf íå ñâÿçàí ñ FileMapping!');
Exit;
end;
Вот тут функция MapViewOfFile возвращает nil.
Тимохов (2004-06-30 13:51:00) [8]
> Такую структуру передать можно. Вопрос в том, как вы это
> делаете.
во-во
TUser (2004-06-30 13:50:00) [9]Такую структуру передать можно. Вопрос в том, как вы это делаете.
Тимохов (2004-06-30 13:48:00) [10]что "?".
Сложно понять?
Вопросы учить задавать?
Ну читайте http://ln.com.ua/~openxs/articles/sq_118.html
1. Какое сообщение об ошибке.
2. Что сделали (код)
XeLax (2004-06-30 13:45:00) [11]
> Тимохов
?
Тимохов (2004-06-30 13:31:00) [12]крах - этой новый тип исключения?