
23.06.2009, 21:52
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами:
10097606
Репутация:
3349
|
|
как ни крути но даже на 64 битных системах получить боьше 4 гигов на проц не получится потому как прожка всё равно под 32 бита.
По этому и на 32 битках незя больше 2 гигов (теоретически) (если ядро негрузить за третим гигом.)
А чтобы юзать SetFilePointer для данных больше 4 гигов то вычесляется так:
Код:
int64 size;
size = хзхзхзхзхзхз очень много короче
long hs,ls;
ulong hi_addr = NULL;
hs = size >> 32;
ls = (LONG) size;
if (hs) hi_addr = &hs; else hi_addr = NULL;
SetFilePointer (h, ls, hi_addr, dwMoveMethod)
т.е. если есть часть выше 32 бит, то зададим её адрес.
А вообще есть прекрасный флаг - передвинуться от текущей позиции а не от начала.
|
|
|