Здравствуйте, bviktor, Вы писали:
B>Нет так и задумано, что файл может отвалиться, мне нужно проверить именно
B>что файл отвалился и маппинг на память прошел, но указатель на память "плохой".
SEH
имхо, самый логичный путь.
Также можно воспользоваться функцией IsBadReadPtr — проверил при маппинге файла на CD:
CAtlFile file;
file.Create("G:\\autorun.inf", GENERIC_READ, FILE_SHARE_WRITE|FILE_SHARE_READ|FILE_SHARE_DELETE, OPEN_EXISTING);
ULONGLONG len;
file.GetSize(len);
printf("eject disk and press enter");
getchar();
CAtlFileMapping<BYTE> mp;
mp.MapFile(file);
void *ptr = mp.GetData();
BOOL bad = IsBadReadPtr(ptr, len);
printf("ptr is %s\n", bad?"bad":"good");
...добивая ногами психиатра: "Это кто нервный?! Это я нервный?!!"
fb2k: Sepultura - Nomad