我如何获得split_winmain的句柄

时间:2009-11-11 06:11:03

标签: c++ command-line boost-program-options

我正在尝试使用一个简单的Windows控制台库来获取升级库program_options。 我已经在图书馆中链接了 C:\Program Files\boost\boost_1_40\lib\libboost_program_options-vc90-s-1_40.lib 包含头文件

#include <boost/program_options.hpp>
#include <boost/program_options/config.hpp>
#include <boost/program_options/option.hpp>
#include <boost/program_options/detail/cmdline.hpp>
#include <boost/program_options/detail/parsers.hpp >

定义_WIN32(但我不认为这是必需的。)

我仍然继续

Error   1   error C3861: 'split_winmain': identifier not found

它应该是如此简单,但我不能让它工作。任何人都可以告诉我这里需要做什么。 约瑟夫·沙纳汉

1 个答案:

答案 0 :(得分:1)

该函数在boost::program_options命名空间中声明。如果您只是单独使用它的名称,编译器就不知道您在说什么。您有几个选择:

  • 调用时使用完全限定名称:

    boost::program_options::split_winmain(...);
    
  • 告诉编译器你的意思是什么:

    using boost::program_options::split_winmain;
    split_winmain(...);
    
  • 将整个命名空间带入当前范围:

    using namespace boost::program_options;
    split_winmain(...);
    
  • 创建名称空间别名:

    namespace po = boost::program_options;
    po::split_winmain(...);
    

我更喜欢最后一个。

不要定义_WIN32宏;编译器会在适当的时候为你做这件事。

相关问题