240 发简信
IP属地:四川
  • 120
    C++的模块化程序设计

    今天在给学员讲课时,遇到了动、静态链接的内容。为了更清楚的阐述,我结合模块化程序设计,把这里相关的内容总结出来。方便后面查阅。这里主要涉及static和extern关键字的用...

  • 120
    理解C++ 结构体

    想要理解C++结构体,要从两个角度出发。 一是内存角度,而是面向对象角度。 为什么要内存对齐 内存对齐本来是个很简单的事,但是网上始终没有一个很好的解释。 有些人强调背公式,...

  • 120
    在 Qt 窗口树上寻找某个窗口

    Node Editor中有许多窗口,它们都是 主窗口 QMainWindow的子窗口。 Parameter Widget: 当点击某个节点时,会显示这个节点的信息,以及可以调...

  • Node Editor 软件架构分析(0)

    Node Editor (节点编辑器)如今被广泛应用在各个领域。比如 Unreal Engine 的 Blueprint Editor(蓝图编辑器)和 Material Ed...

  • C++ 函数式编程在Qt项目中的应用(2)

    使用 std::for_each 和std::count_if可以方便地分割字符串。 在 Node Editor 项目中,需要把类中的字段动态地反射到UI控件上。 在UI控件...

  • 120
    C++ 函数式编程在Qt项目中的应用(1)

    函数式编程的高级技巧,我很少使用。但是一些简单的玩法,写在项目里,可以让代码变得简介;给学生讲课时,他们可以迅速理解。 这里,我从项目中提取出一些简单应用,给大家参考。 这个...

  • C++ 使枚举类型支持位运算

    在 C++ 编程中,经常需要用枚举类型表示各种选项, 而这些选项还可能需要各种组合。 比如在 Qt 编程中, 需要经常写这样的代码。 这要求枚举类型可以参与位运算, 并且位运...

  • C++模板元编程案例:PtrDiff 类型与指针的安全运算

    在 C++ 中, 指针运算非常常见。 比如有一个32字节的 Buffer, 知道首地址和长度就可以管理整个 Buffer. 但是这段代码不够健壮, 仔细琢磨一下就能发现。 在...

  • C++ 提高编译速度的策略

    C++ 编写的项目, 规模一旦变大, 编译时间就变得不可忽略。 每次改动一点点内容,可能就要等好几分钟。有人会说, 现在电脑配置那么高, 动不动就6核8核的, 编译时间是不是...

  • C++ 用宏生成单例类

    在项目开发中, 常常使用单例类管理共享数据。单例类的写法非常固定, 如果程序中存在多个单例类,模板代码要写好几遍, 非常不爽。 可以用 C++ 的宏来生成代码, 减小工作量。...

  • Qt 应用程序启动流程管理

    如果你使用 Qt 开发应用程序, 那你一定写过下面的代码 这段代码相当直接: 创建一个 QApplication 对象、 创建一个窗体、显示窗体、执行事件循环。 如果你在开发...

  • C++工业级软件架构设计之MVC模式

    一谈到设计模式, 很多人都觉得,设计模式只是GoF书上那23种。 但我认为广义的设计模式包含架构模式, 即MVC, MVVM之类的设计理念。 使用C++开发应用程序时, 往往...

  • 二次封装Qt消息框(MessageBox)

    很多时候,应用程序都会给客户弹出提示框。一般地,我们需要让这个消息框标题栏中显示应用程序的名字。 如果使用Qt原生的MessageBox来做,会写出下面的代码。 弹出消息框的...

  • C++工业级软件架构设计之文件路径管理

    通常来说,我们要为一个应用程序提供各种资源,比如配置文件、作为插件的动态链接库文件、样式表文件等。为了保证有一个清晰明了的应用程序目录结构,我们需要把这些文件在目录中有效组织...

  • TChar转QString

    在转换到QString之前,需要先明确TChar此时代表什么类型。 在 Visual Studio 中, 选择【项目属性页】--》【配置属性】--》【高级】页面, 查看【字符...

  • 区分::wsprintf()与::swprintf()

    在项目的核心算法模块中, 需要输出一些信息, 难免需要拼接字符串。 为了性能考虑, 我没有使用std::string或者QString, 以避免字符串拼接运算所带来的额外开销...

  • C++ 计算函数的执行时间

    在对程序进行性能评估时, 需要计算某个函数的执行耗时。思路是利用c++的RAII,在函数执行结束时,自动计算耗时并打印。 下面是这个类的用法。 如你所见, 只需要把这个对象放...

  • 性能优化——使用多线程加速Halcon深度学习算子

    可以用Halcon建立深度学习模型,并用到实际项目中。 流程大概是使用免费的 Halcon Deeplearing Label Tool制作模型后,导出成.hdl文件,并在应...

  • 将QImage转换为HImage的方法

    下面演示把QImage转换为HImage的方法。 首先写一个generateHImage的方法。这个函数使用一个uchar *作为数据源, 在全局作用域内生成一个HImage...