Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.192.95.161] |
|
Сообщ.
#1
,
|
|
|
Как осуществляется мэппинг файлов (отображение файлов в память) в Qt?
Например, на WinAPI есть следующий код: typedef struct { long DAT; long F0; long A0; long F1; long F81; long F40; long Ap365; long PR; } FF_ms; //... FF_ms *F=NULL; //... HANDLE hFile = CreateFile(NAme_A, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile!=INVALID_HANDLE_VALUE) { hMapping = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL); if (hMapping!=NULL) { CloseHandle(hMapping); F = (FF_ms*)MapViewOfFile(hMapping, FILE_MAP_READ, 0, 0, 0); if (F) { CloseHandle(hMapping); j_atm = 1; } } } Как этот код будет выглядеть в Qt? |
Сообщ.
#2
,
|
|
|
Цитата erslgoeirjh @ Как осуществляется мэппинг файлов (отображение файлов в память) в Qt? Почитай тут про uchar *QFileDevice::map(qint64 offset, qint64 size, QFileDevice::MemoryMapFlags flags = NoOptions) Возможно это именно то, что ты ищешь. |
Сообщ.
#3
,
|
|
|
Ну и на всякий случай: в Boost тоже есть вариант memory-mapped files (причём кросс-платформеррный, если не ошибаюсь). Тащить при этом за собой весь буст не надо - там несколько хидеров было, мы их легко в проект втянули, без танцев с бубном.
|