Как исправить ошибку с отображением памяти Boost в Visual Studio, которая вызывает сбой ios_base :: from boost :: wraexcept - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь узнать о реализации файлов, отображаемых в память, используя библиотеки повышения. Я попытался использовать много примеров кода, и даже самые простые реализации, такие как чтение файла, вызывают ошибки. Я продолжаю получать одно и то же сообщение об ошибке об исключении Microsoft C ++: boost :: wrapexcept в ячейке памяти. Кто-нибудь решил эту проблему, используя Visual Studio на Windows?

Я попытался отладить код некоторых примеров, которые я использовал, но я все еще не понимаю, как решить проблему.

#include <boost/iostreams/device/mapped_file.hpp> // for mmap
#include <algorithm>  // for std::find
#include <iostream>   // for std::cout
#include <cstring>
int main()
{//have use memory mapped file in read only mode and read the stduff.txt file
boost::iostreams::mapped_file mmap("stduff.txt", boost::iostreams::mapped_file::readonly);
    auto f = mmap.const_data();
    auto l = f + mmap.size();

    uintmax_t m_numLines = 0;

//read out the data in the file and number of line
    while (f && f != l)

        if ((f = static_cast<const char*>(memchr(f, '\n', l - f))))
            m_numLines++, f++;

    std::cout << "m_numLines = " << m_numLines << "\n";
}

Я ожидаю, что кодированный будет читать m_numlines = 1, но вместо этого я получаю исключение Microsoft c ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...