草庐IT

boost-program-options

全部标签

c++ - Boost::filesystem::is_empty() 为符号链接(symbolic link)返回 false

直到一周前,我一直在我的项目中使用Boost1.46.1。将所有内容升级到Boost1.55.0后,我注意到某些功能无法像以前那样工作。我的软件加载通过SymLinks放置的配置文件。我正在使用Microsoftmklink做这个。我今天发现虽然1.46.1版中的boost::filesystem::is_empty()为我的链接返回false,但它现在返回true在1.55.0中。不幸的是,我无法更改使用该代码的组件。结果是我的配置文件不再加载。有没有办法以Boost能够识别的方式创建链接?如果我可以访问代码:我需要如何更改它才能再次运行?更新:回复评论的更多信息:SymLink有效

c++ boost asio 异步函数不能在 dll 中工作

我有这个基于教程的简单的boostasio代码,它在从exe中调用时工作正常,但在使用LoadLibrary从dll中运行时崩溃。它在提升代码而不是我的代码中崩溃。90%的时间它会在其线程互斥函数内部崩溃。与exe相比,在dll中执行代码时是否有任何限制?这是我的代码:Connection::Connection(boost::asio::io_service&ioservice):m_Socket(ioservice),m_Resolver(ioservice){}voidConnection::ConnectTo(){boost::asio::ip::tcp::resolver::

windows - 使用 boost::filesystem::path 作为 std::map 中的键

所以std::map想要对键类型进行排序,但我遇到了问题:"a/b""a/b"如何规范化路径以创建排序?这可能吗?我尝试在自定义比较运算符中使用path::generic_string(),但没有成功。fs::equivalent()也无济于事,因为实现平等对于std::map来说还不够,它需要一个排序。这也是为什么这个问题不是HowdoI"normalize"apathnameusingboost::filesystem?的重复问题的原因。.上下文:仅限Windows,Boost1.49,文件系统3。 最佳答案 要使路径具有可比性

c++ - 用于构建 boost : "don' t know how to make <e>stage"的“阶段”参数

我正在尝试在Windows7(版本6.1.7601)上安装boostv.1.54。安装了带mingw、gcc和g++编译器的cygwin。我需要使用“stage”参数来构建boost;但是它会产生以下错误:C:\boost\tools\build\v2>b2--prefix="C:\boost_build"toolset=gcc--buildtype=completegccstagenotice:couldnotfindmaintargetstagenotice:assumingitisanameoffiletocreate.don'tknowhowtomakestage...foun

c++ - boost::program_options - 它是否对命令行选项进行精确的字符串匹配?

boost::program_options的options_description匹配完成的方式似乎有问题。intmain(intargc,char*argv[]){boost::program_options::options_descriptiondesc("CmdLineutility");desc.add_options()("hel","helmessage")("help","producehelpmessage")("helps","helpsmessage");boost::program_options::variables_mapvm;boost::program

windows - 64 位 Windows 注册表 - 为什么 %Program Files% 转换为 %Program Files(x86)%?

运行如下代码后,在32位进程中,数据%ProgramFiles%自动转换。HKEYhSubKey;DWORDdwState;RegCreateKeyEx(HKEY_CURRENT_USER,L"TestKey",NULL,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hSubKey,&dwState);std::wstringdata=L"%ProgramFiles%";RegSetValueEx(hSubKey,L"TestValue",NULL,REG_EXPAND_SZ,(BYTE*)data.c_str(),(DWORD)(

windows - Windows 中的 F1 : Should it open the program's help screen OR show help text?

我开发跨平台桌面应用程序,最近我发现了在小部件上使用帮助文本的乐趣。然后用户在标题栏上有一个问号按钮,单击该按钮后,他可以单击窗口中的任何小部件并查看有关它的帮助文本。非常好。因为我认为所有程序都应该完全可以通过键盘使用而无需触摸鼠标,所以我发现在Windows上,F1打开具有当前焦点的小部件的帮助文本。到目前为止还不错。但是...F1几乎总是用于应用程序的帮助屏幕。所以我们发生了冲突。我应该怎么办?是否有不同的快捷键可用于打开帮助文本气球? 最佳答案 根据MicrosoftUserExperienceGuide的第233页,F1显

c++ - 将 Windows 上的 32 位和 64 位 Boost 构建到同一文件夹中

我正在寻找config.jam的简单设置,它将使用MSVC在Windows上为x86和x64构建Boost(1.60或更高版本)。理想情况下使用对b2的单个调用——我知道它应该支持从单个调用生成多个输出。对x86和x64有两个单独的调用是可以的,但不是首选。我想要的另一件事是将两组库输出到相同文件夹中。显然,它们需要有不同的名称,所以我希望将-x64放在x64二进制文件名称中的某个位置。而且它仍然需要自动链接,所以我不能手动重命名它们,它必须是构建系统支持的东西。这部分是必不可少的。我已经readb2提供了一个--buildid参数并且自动链接支持BOOST_LIB_BUILDID定义

c++ - Boost::process 在 Windows 上隐藏控制台

最近发布了boost1.64,包括boost::process。这为启动进程提供了一个简单的界面。之前我使用了独立版本的boost::process库(参见here)。这很好用。我想换到新版本,这样我就可以放弃独立的依赖。API有点不同,但一切正常,除了onthing。在旧版本中,我能够传递特定于Windows的上下文对象,这允许我隐藏进程打开的任何控制台窗口。boost::process::win32_contextctx;ctx.environment=boost::process::self::get_environment();STARTUPINFOAstup;ZeroMemo

windows - 当你有很多 32 位和 64 位操作系统的 PC 时,如何选择 "program files"文件夹?

当你有很多32位和64位操作系统和32位或64位应用程序的PC时,如何选择“程序文件”文件夹?我制作了一个文件来创建firebird数据库的备份,但我需要帮助。有时会有一台64位操作系统和32位firebird或winrar的PC。有时,PC具有64位操作系统和64位应用程序,或者32位操作系统具有32位应用程序。如何让这段代码更好地工作?ECHOOFFsetisc_user=sysdbasetisc_password=masterkeydate/t>>tempo.txttime/t>>tempo.txtmode20,5delos.txt/qwmicosgetosarchitectur