boost :: program_options缓冲区溢出

时间:2010-06-15 15:26:23

标签: c++ visual-c++ boost boost-program-options

使用boost时遇到问题:program_options

这个简单的程序,从boosts的文档中复制粘贴:

#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;
}

因缓冲区溢出而失败。

我已经激活了“缓冲区安全开关”,当我运行它时,当我跨过行desc.add_options()...时,我得到一个“未知异常(0xc0000409)”

我使用Visual Studio 2005并提升1.43.0。

顺便说一下,如果我停用开关,它会运行,但我觉得这样做不舒服......除非可以在本地停用它。

那么你有解决这个问题的方法吗?

修改 我发现了这个问题 我正在链接libboost_program_options-vc80-mt.lib,这不是一个好的库。

2 个答案:

答案 0 :(得分:1)

它可以在2010年运行。即将在2005年尝试,但意识到我没有在该环境中编译1.43。

答案 1 :(得分:0)

我发现我链接到libboost_program_options-vc80-mt.lib的问题,因为我将运行时库更改为多线程DLL,所以这不是一个好的库。