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

Глючная структура   Найти похожие ветки 

← →
XeLax   (2004-06-30 13:26) [0]

Есть структура которой надо обмениваться с другим приложением. Вот ее код:

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 такого глючного ?


← →
Тимохов ©   (2004-06-30 13:31) [1]

крах - этой новый тип исключения?


← →
XeLax   (2004-06-30 13:45) [2]


> Тимохов

?


← →
Тимохов ©   (2004-06-30 13:48) [3]

что "?".
Сложно понять?
Вопросы учить задавать?
Ну читайте http://ln.com.ua/~openxs/articles/sq_118.html

1. Какое сообщение об ошибке.
2. Что сделали (код)


← →
TUser ©   (2004-06-30 13:50) [4]

Такую структуру передать можно. Вопрос в том, как вы это делаете.


← →
Тимохов ©   (2004-06-30 13:51) [5]


> Такую структуру передать можно. Вопрос в том, как вы это
> делаете.

во-во


← →
juiceman   (2004-06-30 13:54) [6]


> 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.


← →
juiceman   (2004-06-30 13:56) [7]

Сорри за двуличность, вопрос мой


← →
Тимохов ©   (2004-06-30 13:56) [8]

Не хотите воспользоваться сообщением wm_copydata?
те же filemap, только скрытые от вас...


← →
Тимохов ©   (2004-06-30 14:01) [9]

если хотите, могу пример дать с wm_copydata...


← →
juiceman   (2004-06-30 14:03) [10]

Я конечно попробую, но думаю это не поможет. Понимаете, все работало ок как на обеих сторонах до момента добавления подструктуры tariffs. Через обычный файл даже не получается. ОК, сейчас попробую ...


← →
False_Delirium ©   (2004-06-30 14:04) [11]


 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 15:32) [12]

2False_Delirium
спасибо, это помогло!



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

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



Память: 0.48 MB
Время: 0.02 c
1-1087999257
Alexis
2004-06-23 18:00
2004.07.11
Использование GIF в Delphi


1-1088367504
dido
2004-06-28 00:18
2004.07.11
Местоположение элемента массива


1-1088096196
rOOse
2004-06-24 20:56
2004.07.11
Использование реестра


14-1087913545
artis
2004-06-22 18:12
2004.07.11
Создание патча


14-1087539445
Apocalepse
2004-06-18 10:17
2004.07.11
Gero и все все все




   Наверх