如何获取 split_winmain 的句柄

发布于 2024-08-10 19:02:02 字数 656 浏览 5 评论 0原文

我正在尝试让 boost 库 program_options 在一个简单的 Windows 控制台库上工作。 我已经在图书馆链接了 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

应该如此简单,但我无法让它工作。谁能告诉我我需要在这里做什么。 约瑟夫·沙纳汉

I am trying to get a get the boost library program_options working on a simple windows console library.
I have linked in the library
C:\Program Files\boost\boost_1_40\lib\libboost_program_options-vc90-s-1_40.lib
Included the header files

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

Defined _WIN32 (But I don't think it is required.)

And I still keep getting the

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

It should be so simple but I can't get it to work. Can anyone tell me what I need to do here.
Joseph Shanahan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月棠 2024-08-17 19:02:03

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

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

    boost::program_options::split_winmain(...);
    
  • 告诉编译器您指的是哪个函数:

    使用 boost::program_options::split_winmain;
    split_winmain(...);
    
  • 将整个命名空间带入当前作用域:

    使用命名空间 boost::program_options;
    split_winmain(...);
    
  • 创建命名空间别名:

    命名空间 po = boost::program_options;
    po::split_winmain(...);
    

我更喜欢最后一个。

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

That function is declared in the boost::program_options namespace. If all you do is use its name alone, the compiler doesn't know what you're talking about. You have a few options:

  • Use the fully qualified name when you call it:

    boost::program_options::split_winmain(...);
    
  • Tell the compiler which function you mean:

    using boost::program_options::split_winmain;
    split_winmain(...);
    
  • Bring the entire namespace into the current scope:

    using namespace boost::program_options;
    split_winmain(...);
    
  • Make a namespace alias:

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

I prefer the last one.

Do not define the _WIN32 macro; the compiler will do that for you when it's appropriate.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文