Вход в Зоопарк ручных компьютеров
gps мониторинг, транспортная логистика, gps слежение
Если вы видите баннеры при просмотре с КПК, то вам - СЮДА
Не получается создать отображаемый в память файл :(
Форумы Поиск Вход Для ПК
Программирование для КПК
Чт Авг 08, 2002 1:59
vroma (Гость)
Вот, почему-то не выходит создать отображаемый в память файл для WinCE 3.0 Sad

Когда открываю файл функцией CreateFile() и читаю его через ReadFile(), то все ОК.

Когда создаю в памяти проекцию абстрактного файла посредством m_hFileMap = CreateFileMapping((HANDLE)INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, dwFileSize, NULL), то все также ОК.

Но когда пытаюсь отобразить в память реально существующий файл

Код:

// открыть файл
m_hTabFile=CreateFile(TEXT("\\myfile.txt"),
                                  GENERIC_READ|GENERIC_WRITE,
                                  FILE_SHARE_READ|FILE_SHARE_WRITE,
                                  NULL,
        OPEN_EXISTING,   //CREATE_ALWAYS
                                 FILE_ATTRIBUTE_NORMAL,
                                 NULL);
...
// создать проекцию файла в памяти
m_hFileMap = CreateFileMapping(m_hTabFile, //(HANDLE)INVALID_HANDLE_VALUE
                                                 NULL,
                                                 PAGE_READWRITE, //PAGE_READONLY
                                                 0,
                                                 dwFileSize,
                                                 NULL);
if (m_hFileMap != NULL)
{
...
}

...


то получаю ошибку (6L) ERROR_INVALID_HANDLE.

Когда пытался задавать отличающиеся режимы доступа к файлу (в CreateFile(PAGE_READONLY), а в CreateFileMapping(PAGE_READWRITE)), то защита срабатывала - выдавалась ошибка
(5L) ERROR_ACCESS_DENIED. Выходит система файл видит.

Не пойму в чем проблема. Может кто сталкивался с подобным ?

P.S. А что это за файлы, находящиеся в корневом каталоге эмулятора Pocket PC 2002: CMMapG, CMMapP, GCounterFile.mmf ?
Чт Авг 08, 2002 3:49
Mobmax (Маститый писатель)
Поменяй открытие файла с CreateFile на CreateFileForMapping - должно полегчать.

HANDLE CreateFileForMapping(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile );

Вот он какой северный олень... Smile
____________
Best regards,
Mobile Max
Чт Авг 08, 2002 4:20
Гость ()
Заработало.

Спасибо, Mobmax Smile

Если вы видите баннеры при просмотре с КПК, то вам - СЮДА



Форумы Handy.ru 


Powered by phpBB © 2001 phpBB Group