переполнение буфера с boost :: program_options - PullRequest
1 голос
/ 15 июня 2010

У меня проблема с использованием boost: program_options

эта простая программа, скопированная из документации бустеров:

#include <boost/program_options.hpp>

int main( int argc, char** argv )
{

    namespace po = boost::program_options;

    po::options_description desc("Allowed options");
    desc.add_options()
        ("help", "produce help message")
        ("compression", po::value<int>(), "set compression level")
        ;
    return 0;
}

завершается неудачно с переполнением буфера.

Я активировал «переключатель безопасности буфера», и когда я запускаю его, я получаю «неизвестное исключение (0xc0000409)», когда я перехожу через строку desc.add_options()...

, я использую Visual Studio 2005 и повышаю 1.43.0.

Кстати, он работает, если я деактивирую коммутатор, но мне неудобно это делать ... если только его деактивировать невозможно локально.

Так что у вас есть решение?к этой проблеме?

РЕДАКТИРОВАТЬ Я обнаружил проблему, которую связывал с libboost_program_options-vc80-mt.lib, которая не была хорошей библиотекой.

Ответы [ 2 ]

1 голос
/ 15 июня 2010

Это работает в 2010 году. Я собирался попробовать в 2005 году, но понял, что у меня не скомпилировано 1.43 в этой среде.

0 голосов
/ 15 июня 2010

Я обнаружил проблему, которую связывал с libboost_program_options-vc80-mt.lib, которая не была хорошей библиотекой, так как я изменил библиотеку времени выполнения на многопоточную DLL.

...