есть ли аналог ReadFile для буффера

Тема в разделе "WASM.BEGINNERS", создана пользователем grey, 23 май 2009.

  1. grey

    grey New Member

    Публикаций:
    0
    Регистрация:
    23 май 2009
    Сообщения:
    5
    привет.
    может быть есть какие нибудь аналоги ReadFile только для памяти которая находится в буффере?
    т.е. аналогичная работа ReadFile, но в роли файла буффер с памятью
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    не понял))
    если надо прочитать из памяти в память, тогда memcpy :)

    либо уточни вопрос
     
  3. barton

    barton New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2008
    Сообщения:
    164
    Адрес:
    Czechoslovakia
    Может быть grey интерисуется циклом с
    {
    адын:
    читаем сколько-то байт
    добавляем их в расширяемый std::string
    гото адын
    }
    ?
     
  4. grey

    grey New Member

    Публикаций:
    0
    Регистрация:
    23 май 2009
    Сообщения:
    5
    ну например есть у меня бинарный файл, мне необходимо прочитать длину строки, делаю это так:
    Код (Text):
    1. ReadFile( hFile, &Text->FirstStringLen, sizeof( DWORD ), &BytesRead, 0 );
    вот, может можно так же сделать только считку делать из буффера?
     
  5. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    grey
    Можно.
     
  6. BigGreen

    BigGreen New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    34
    grey
    ReadProcessMemory(GetCurrentProcess())?
     
  7. grey

    grey New Member

    Публикаций:
    0
    Регистрация:
    23 май 2009
    Сообщения:
    5
    Booster
    ну клево, а как лучше сделать это на си?без си++
    я понял что так понимаю что через memcpy( lpBuffer, (мой буффер текста + dwBytesRead), dwSize ); ?
    но не думаю что так работать будет
    BigGreen
    а?причем тут считка памяти из своего процесса?
     
  8. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Код (Text):
    1. char *buf; //буфер
    2. ...
    3. char *p = buf; //текущий указатель позиции буфера
    4. Text->FirstStringLen = *(DWORD*)p;
    5. p+=sizeof(DWORD); //если нужно передвинуть текущий указатель p
     
  9. grey

    grey New Member

    Публикаций:
    0
    Регистрация:
    23 май 2009
    Сообщения:
    5
    leo
    большое спасибо ))
     
  10. BigGreen

    BigGreen New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    34
    насколько понял вопрос, тебе нужна функция которой можно считывать из буфера с подобным ReadFile()'у интерфейсом
    вот и предложил
    а буфер где?
     
  11. grey

    grey New Member

    Публикаций:
    0
    Регистрация:
    23 май 2009
    Сообщения:
    5
    буффер находится в файле )
     
  12. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    grey
    Будет, куда денется ;)
    Только всякие int,DWORD и т.п.быстрее напрямую присваивать через приведение типа. А вот строки, массивы чисел и т.п. ес-но через memcpy
     
  13. Prohvost

    Prohvost New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    107
    ик!
    Я сошел с ума, похоже...
     
  14. BigGreen

    BigGreen New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    34
    все ясно
     
  15. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    а rep movs не катит?