2010-06-15 4 views
1

У меня есть проблема с использованием подталкивания: program_optionsпереполнения буфера с усилением :: 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 ,

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

У вас есть решение этой проблемы?

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

+0

Можете ли вы добавить, какую версию boost вы используете? –

+0

Я добавил. Это версия 1.43.0 –

+0

Вам не нужно вручную ссылаться в VS. Boost использует директивы прагмы для ссылки. –

ответ

0

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

1

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

Смежные вопросы