чтние данных из маппинг памяти

Тема в разделе "WASM.BEGINNERS", создана пользователем rubic_, 1 ноя 2007.

  1. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    Такой вопрос, я создаю область памяти с помощью функции CreateFileMapping. Туда загружается определенный текстовый файл, есть какая нить функ-я чтобы считать эти данные в какй-нибудь буфер, чтобы потом на экран вывести..или функция которая на прямую выводит текст из данной области?
     
  2. Noble Ghost

    Noble Ghost New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2004
    Сообщения:
    204
    Адрес:
    Russia
    если ты правильно все сделал, то у тебя есть указатель на этот самый "буфер"
     
  3. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Куда выводит? Консоль, принтер, мессаджбокс, сокет, пайп?
     
  4. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    MapViewOfFile
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ты создаешь CreateFileMapping'ом не область памяти, а проекцию файла. Функцией MapViewOfFile(MapViewOfFileEx) ты можешь спроецировать вид. После этого тебе отдается указатель, и ты можешь с ним работать как тебе угодно., напрямую читать или писать в эту память. После всех манипуляций нужно проделать обратные операции - закрыть вид (UnmapViewOfFile), закрыть проекцию (CloseHandle с хендлом от CreateFileMapping) и закрыть файл.
     
  6. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    прорисовать я его хочу на главном окне проги, т.е без отдельном контрола
    Код (Text):
    1. invoke  GetOpenFileName,addr ofn
    2.             .if eax==TRUE
    3.                 invoke  CreateFile,addr buffer,GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,NULL
    4.                 mov     hFileRead,eax
    5.                 invoke  CreateFileMapping,hFileRead,NULL,PAGE_READONLY,0,0,NULL
    6.                 mov     hMapFile,eax
    7.                 ;exp
    8.                 invoke MapViewOfFile,hMapFile,FILE_MAP_READ,0,0,NULL
    9.                 mov pMemory,eax
    вот получаю указатель на память(pMemory) и как мне теперь прорисовать текст какторый в данной памяти на форме..пробывал послать сообщение GET_TEXT, не получилось..этот указатель содержет в себе указатель на первый символ текста загруженного в память или как? записать в другой файл получиллось, а на окне его прорисовать не пойму как(
     
  7. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    MSDN: TextOut
     
  8. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    ага спс помогло..только прорисовывает в однустроку...я так понял, что надо самому просчитать количество символов, которое может прописаться в окне,не выходя за грани, относительно ширины окна, и считывать из памяти. Потом менять координаты и все будет ок...или как то по другому можно?
     
  9. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    это конечно гиморойный способ вывода текста, но что-то захотельсь поэксперементировать, а то скучно только читать и списывать код)
     
  10. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    только вот почему то в Оли смотрю когда прогу, после ввызова CreateFileMapping в еах 0, а
    создает...и вообще почему-то не останавливается моя прога на брейках, поставленных на функции(