草庐IT

Boost-asio

全部标签

c++ - boost.filesystem create_directories 抛出 std::bad_alloc

我有一个在WindowsXPSP3中运行的使用Boost1.47.0的VisualStudio2008C++03应用程序。调用boost::filesystem::create_directories(L"c:\\foo\\bar");抛出一个std::bad_alloc异常。在输出窗口中,我看到一条调试堆消息:“HEAP[test.exe]:分配大小无效-CDCDCDCE(超过7ffdeff)”调用堆栈显示boost.filesystem创建了一个新的语言环境和Microsoft标准库文件xlocale第309行中最后可见的代码行。msvcp90.dll!std::_Allocate

c++ - 如何指定要在用 C++ 编写的应用程序中使用的特定 NIC (boost asio)

我有一台机器连接到多个独立网络,每个网络都在不同的NIC(网络接口(interface)卡)上。机器运行Windows7。我在需要使用TCP通过特定NIC连接到特定IP的机器上运行应用程序。该应用程序使用c++11和boostasio(1.53.0)进行联网,源码可以更改。在Windows环境下解决这个问题(指定端点IP和网卡)有哪些不同的合理方式?当前的解决方案将相应的(block)IP分配给路由表中正确的NIC-通过使用命令行“route”命令-作为持久路由。操作系统以这种方式处理问题,这是允许的,但不是必需的。 最佳答案 你应

c++ - 如何使用 bjam 构建 boost 示例?

Boost库充满了示例和测试,如果可能的话,我想使用bjam构建它们。如何使用bjam构建boost示例?附言。我找不到该选项的正确文档。 最佳答案 这取决于图书馆。他们中的大多数从测试目录运行示例。示例目录中的其他内容。转到有Jamfile的libtest或example目录并执行bjam 关于c++-如何使用bjam构建boost示例?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi

c++ - boost::interprocess::named_mutex 与 CreateMutex

我想从CreatMutex切换到boost::interprocess::named_mutex以将我的应用程序限制为单个实例。当应用程序正常运行和结束时,这两种方法都有效。但是,当应用程序崩溃并使用boost::interprocess::named_mutex时,锁不会被释放。我可以通过使用两个name_mutex来解决这个问题,但我真的不明白这个问题。为什么boost::interprocess::named_mutex的锁在应用程序崩溃时没有释放,但它是通过CreatMutex释放的?有什么区别?boost::interprocess::named_mutexmutex(boo

c++ - 设置 boost 并与 Visual Studio 2010 Express 一起使用

我知道您可以在网络上找到类似的问题,尤其是在stackoverflow中,但我仍然需要写这个问题,因为我找不到任何有分步教程的页面,如何设置boost库并将其与VisualStudio2010速成版。即使在这里:HowtouseBoostinVisualStudio2010有些步骤(例如3、4)我找不到菜单...所以请帮助我能够在Win7上使用visualstudio2010express的boost。 最佳答案 对于建筑:从这里下载Boost:http://www.boost.org/users/download/并提取文件双击b

c++ - 在 Windows 10 和 Visual Studio Community 2019 下使用 boost with Bazel

我已经建立了一个简单的C++程序,它使用了boost文件系统模块。为了构建程序,我使用Bazel0.25.0。我在Windows10x64下工作。我安装了VisualStudio2019CommunityEdition并将BAZEL_VC设置为E:\ProgramFiles(x86)\MicrosoftVisualStudio\2019\Community\VC。我已经安装了MSYS2shell。这是我的文件(也可以在GitHub上找到):工作区workspace(name="BoostFilesystemDemo")load("@bazel_tools//tools/build_de

c++ - 间歇性地没有数据通过 boost::asio/io 完成端口传递

问题我正在使用boost::asio对于同一台机器上的两个进程使用TCP/IP进行通信的项目。一个生成数据供另一个读取,但我遇到了间歇性地没有数据通过连接发送的问题。我将其归结为下面一个非常简单的示例,基于asynctcpechoserverexample.流程(下面的源代码)开始时运行良好,以快速的速度将数据从发送方传送到接收方。然后突然间,在大约五秒钟内根本没有传送任何数据。然后再次传送数据,直到下一次莫名其妙的停顿。在这五秒钟内,进程消耗0%CPU,并且似乎没有其他进程做任何特别的事情。停顿的长度始终相同-五秒。我正试图弄清楚如何摆脱这些摊位以及造成这些摊位的原因。整个运行期间的

c++ - boost-C++ 库是否与 win98 兼容?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion我知道,这听起来很荒谬,但我被要求制作一个与win98向后兼容的应用程序。具体来说,我对我使用过的boost-thread库很感兴趣。那么,我在哪里可以找到有关哪个版本的boost库与哪个操作系统兼容的信息?

c++ - boost::program_options - 解析多个命令行参数,其中一些是字符串,包括空格和字符

我想使用boost::program_options解析多个命令行参数。但是,一些参数是用双引号括起来的字符串。这就是我的-voidprocessCommands(intargc,char*argv[]){std::vectorcreateOptions;boost::program_options::options_descriptiondesc("Allowedoptions");desc.add_options()("create",boost::program_options::value>(&createOptions)->multitoken(),"createcomman

c++ - 在 boost::asio::serial_port 上解锁同步读取

我有一个boost::thread,它在boost::asio::serial_port上执行同步读取。当我销毁包含这两者的类的实例时,我希望线程能够优雅地结束,即使它在读取调用中被阻塞也是如此。我该怎么做?查看docs,我试过cancel,但它只适用于异步读/写。然后我尝试了close,但我得到了一个异常,它不是你可以从中恢复的那种。也许使用send_break或native_handle?(这是Windows,可移植性并不重要)更新:我还尝试停止传递给串行端口对象构造函数的io_service,但是读取code>没有解锁。编辑:异常实际上是“可捕获的”,但我不想在析构函数中放置一个