Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

23.06.2009, 21:52
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
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 бит, то зададим её адрес.
А вообще есть прекрасный флаг - передвинуться от текущей позиции а не от начала.
|
|
|

24.06.2009, 17:03
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
slesh имеешь ввиду FILE_CURRENT ?
ЗЫ:я так и непонял как нада выделить память под MapViewOfFile в моём случае 
ЗЫЫ:
Код:
GetDiskFreeSpaceEx(dd,0,&TNOFB,0);
wsprintf(buff,"%I64u",TNOFB.QuadPart);
DWORD sz=atoi(buff);
......................
HANDLE mf=CreateFileMapping(d,NULL,PAGE_READWRITE,0,sz,"MUF");
WriteFile(f,MapViewOfFile (mf,FILE_MAP_READ,0,0,8),sz,&wb,0);
......................
И получаю ошибку "Invalid access to memory location" 
Последний раз редактировалось _nic; 24.06.2009 в 19:46..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|