1

我在使用 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;
}

因缓冲区溢出而失败。

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

我使用 Visual Studio 2005 和 boost 1.43.0。

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

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

编辑 我发现我与 libboost_program_options-vc80-mt.lib 链接的问题不是好的库。

4

2 回答 2

1

它在 2010 年工作。即将在 2005 年尝试,但意识到我没有在那个环境中编译 1.43。

于 2010-06-15T16:06:02.440 回答
0

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

于 2010-06-15T18:18:41.887 回答