boost.json如何获取解析失败的位置
boost.json库提供了一个简便的 parse()
函数来解析JSON文本,只需要一个简单的调用即可,如下所示:
boost.json库提供了一个简便的 parse()
函数来解析JSON文本,只需要一个简单的调用即可,如下所示:
在Windows编程中,在与系统组件打交道时,我们会经常用到COM接口,对于 QueryInterface()
函数不会感到陌生。相较之下,实现COM接口的需求少得多,一旦需要我们自己来实现COM接口,缺乏经验者很可能会在一些平时不会注意到的问题上碰壁。我最近就在实现 QueryInterface()
的时候遇到了一点麻烦,花了不少时间来排查,最终发现起因原来只是一个低级错误。
RichEdit支持在文本中插入OLE对象,OLE对象中可以显示任意自定义的内容,从而达到丰富的显示效果,例如文字和图片在同一行中混合显示。本文在《实现一个可编辑的Windowless RichEdit》一本的基础上,介绍如何在Windowless RichEdit中插入OLE对象。完整的示例代码可以在 WindowlessRichEdit-Example 获得。
在阅读一些开源代码的时候,可能会看到类似下面这种神秘的宏:
我们都知道,当一个exe文件正在运行的时候,是不能被修改,也不能被删除的。然而,似乎有悖常理的是,这个文件却是可以被重命名的。这背后的原理是什么呢?
在涉及文件大小的代码中,经常要写出判断大小的代码。例如,在上传文件之前,要判断文件的大小是否超出了可支持的范围:
最近有客户投诉我们的程序经常无响应,几乎无法使用。我查看了问题现场,发现有以下表现:
ReadFile
读取文件内容时出现无响应的,部分的堆栈如下所示:对于一个用户定义类型,如果定义了operator==
或者operator<
等比较函数,那么这个类型就是可比较的。在实现一些工具库的时候,可能需要知道某个类型是否可比较,例如,想要知道是否可以使用==
操作符来比较两个类对象是否相等,那么可以使用下面的模板类来判断:
对于大型C++项目来说,并行编译开关/MP
是必不可少的编译器选项,它能显著提高项目的编译速度。但是,当我在自己所在的项目中开启了这个选项之后,发现没有什么效果,只有少数文件可以并行编译,大多数文件仍然是串行编译的,编译时CPU使用率只有30%~40%。这个问题困扰了我们项目组很久。