Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› MapViewOfFile
Посл.ответ Сообщение

Ранг: 37.7 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 23 июня 2006 13:15
· Личное сообщение · #1

Вот какое дело: когда я хочу сравнить начало MappedFile со строкой, я делаю:


const
MYDB='XSDB';
........

MapFilePointer := MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 0);
CompareMem(MapFilePointer,pchar(MYDB),5)

......


а что делать, если мне нужно сравнить следующие байты(после этих 5) со значением например $00000300 ?
как установить туда указатель и сравнить?




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 23 июня 2006 13:20 · Поправил: Hellspawn
· Личное сообщение · #2

ну можно вот так:

CompareMem(pointer(dword(MapFilePointer)+5),с чем сравнивать,скока сравнивать)

-----
[nice coder and reverser]




Ранг: 37.7 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 23 июня 2006 14:13
· Личное сообщение · #3

А почему не получается так, что здесь не правильно:


type
MY_HDR=record
Signature:array[1..5] of Byte;
VersionWORD;
end;

const
VER1=$00000300;

...

cmp [MapFilePointer][MY_HDR.Version], VER1


???




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 23 июня 2006 14:22 · Поправил: PE_Kill
· Личное сообщение · #4

Это на каком языке?

На делфи так:

type
PMY_HDR = ^TMY_HDR;
TMY_HDR=record
Signature:array[1..5] of Byte;
Version: DWORD;
end;

const
VER1=$00000300;
begin
PMY_HDR:=MapFilePointer;
if PMY_HDR.Version=VER1 then ...
end;


-----
Yann Tiersen best and do not fuck



 eXeL@B —› Программирование —› MapViewOfFile
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати