Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не свитывается из файла JobInfo2W: Сначала я его записываю в файл


Страницы:   1 2

EgorovAlex ©   (2006-12-20 08:59:00) 

А после считывании все поля с типом PWideChar равны nil. Это так и должно быть? Точно такие же действия работали в D7, а в Turbo Delphi все стринги об nilяются


Сергей М.   (2006-12-20 10:30:00) [21]


> записывается не значение указателя, в D7 это работает и
> на запись и на считывание


Ой ну врешь ведь)

в структуре JobInfo2W сплошные указателина данные, а не сами данные:

 _JOB_INFO_2W = record
  JobId: DWORD;
  pPrinterName: PWideChar;
  pMachineName: PWideChar;
  pUserName: PWideChar;
  pDocument: PWideChar;
  .. и т.д. ..
 end;


EgorovAlex   (2006-12-20 10:17:00) [22]

Для считывания такой же тип:

var
 JobInfo2W: PJobInfo2W;

GetMem(JobInfo2W, JobInfoSize);
ZeroMemory(JobInfo2W, JobInfoSize);
ReadFile(hFile, JobInfo2W^, JobInfoSize, BytesRead, nil);

JobInfoSize равен размеру JobInfo2W при записи


Anatoly Podgoretsky   (2006-12-20 10:13:00) [23]

> EgorovAlex  (20.12.2006 10:01:04)  [4]

Не указываешь объявления переменных.
Говоришь про чтение, а приводишь про запись.


EgorovAlex   (2006-12-20 10:01:00) [24]

Нет, записывается не значение указателя, в D7 это работает и на запись и на считывание. Записывается и в TurboDelphi нормально (я содержимое файла вижу), вот только считывается странно


MBo   (2006-12-20 09:56:00) [25]

>WriteFile(hFile, JobInfo2W^, BytesNeed, BytesWrite, nil);
Хм...
Получается, что ты в файл значение указателя (PWideChar) записываешь, а не данные строки


EgorovAlex   (2006-12-20 09:37:00) [26]

Записивыю в файл: здесь BytesNeed это размер, полученные из GetJob() при получении JobInfo2W


var
 JobInfo2W: PJobInfo2W;
WriteFile(hFile, JobInfo2W^, BytesNeed, BytesWrite, nil);


Считываю:


ReadFile(hFile, JobInfo2W^, BytesNeed, BytesRead, nil);


В результате все стринговые поля =nil :(


MBo   (2006-12-20 09:10:00) [27]

А как ты записываешь и считываешь?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо