《深入浅出MFC》2/e却是为生活而技术,探讨深入,但 谨守主轴份际。所有我所铺陈的核心层面的知识,都是为了建立起一份扎扎实实的 programming 基础,让你彻底了解MFC 为你铺陈的骨干背后,隐藏了多少巧妙机关,做掉 了多少烦琐事务。 有了这份基础,你才有轻松驾驭MFC 的本钱。 唯有这份基础,才能使你胸中自有丘壑。 如果够用心,你还可以附带地从本书概略学习到一个application framework 的设计蓝图。虽 非常缜密才不会挂一漏万。本书第四篇,当我们逐渐发展一个实用程序,你就 会看到ClassWizard 的好处。 第㆓篇 欲善工事先利其器 236 内务府总管:Visual C++ 整合开发环境 做为一个总管,要处理的大大小小事务很多。本章并不是Visual C++ 的完整使用手册, 并不做细部操作解说(完整手册可参考Online Help 中的Visual C++ User's Guide)。基 本上,如果你一边看这些 在Registry 之中应该有独特的型号。再者,如果你以不同的窗口,不同的显现方式,秀 出一份资料,当资料在某一窗口中被编辑,你应该让每一窗口的资料显像与实际资料之 间常保一致。吧啦吧啦吧啦¡ K,繁杂事务不胜枚举。 很快地,问题就浮显出来了。程序不仅要做数据管理,更要做「与数据类型相对应的UI 」 的管理。幸运的是,解决之道亦已浮现,那就是对象导向观念中的Model-View-Controller0 码力 | 1009 页 | 11.08 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起OpenVDB::openvdb 6. Boost::iostreams 7. Eigen3::Eigen 8. OpenMP::OpenMP_CXX • 不同的包之间常常有着依赖关系,而包管理器的作者为 find_package 编写的脚本(例如 /usr/lib/cmake/TBB/TBBConfig.cmake )能够自动查找所有依赖,并利用刚刚提 到的 PUBLIC PRIVATE https://cmake.org/cmake/help/latest/module/FindBLAS.html 安装第三方库 - 包管理器 • Linux 可以用系统自带的包管理器(如 apt )安装 C++ 包。 • > pacman -S fmt • Windows 则没有自带的包管理器。因此可以用跨平台的 vcpkg : https://github.com/microsoft/vcpkg • 使用方法:下载0 码力 | 32 页 | 11.40 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南这个构建系统的构 建规则。 Ninja 是一个高性能,跨平台的构建系统, Linux 、 Windows 、 MacOS 上都可 以用。 • Ninja 可以从包管理器里安装,没有包管理器的 Windows 可以用 Python 的包管理器安 装: • pip install ninja (有趣的事实: CMake 也可以通过 pip install cmake 安装……) • 事实上, MSBuild /usr/lib/cmake/TBB/TBBConfig.cmake 长啥样? 不论是 TBBConfig.cmake 还是 FindTBB.cmake ,这个文件通常 由库的作者提供,在 Linux 的包管理器安装 tbb 后也会自动安装 这个文件。少部分对 CMake 不友好的第三方库,需要自己写 FindXXX.cmake 才能使用。 老年项目案例: OpenVDB (反面教材) 一些老年项目作者喜欢在项目里自己塞几个0 码力 | 166 页 | 6.54 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南1/lib/cmake/Qt5” 设置。 举例, Windows 系统, Qt5 • 例如我把 Qt5 安装到了 D:/Qt5.12.1 。 • 首先找到他里面的 Qt5Config.cmake 文件所在位置(可以用文件管理器的“搜索”功能)。 • 假如你找到该文件的位置是 D:/Qt5.12.1/msvc2017/lib/cmake/Qt5/Qt5Config.cmake ,那 么请你设置变量 Qt5_DIR 为 D:/Qt5 一定要加在最前面! 举例, Linux 系统, Qt5 • 例如我把 Qt5 安装到了 /opt/Qt5.12.1 。 • 首先找到他里面的 Qt5Config.cmake 文件所在位置(可以用文件管理器的“搜索”功能)。 • 假如你找到该文件的位置是 /opt/Qt5.12.1/lib/cmake/Qt5/Qt5Config.cmake ,那么请你设 置变量 Qt5_DIR 为 /opt/Qt50 码力 | 56 页 | 6.87 MB | 1 年前3
现代C++ 教程:高速上手C++11/14/17/20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5 目录 目录 事务内存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 类型的对象 我们现在来看一个实际的例子。 TODO: https://godbolt.org/z/9liFPD 模块 TODO: 合约 TODO: 范围 TODO: 协程 TODO: 事务内存 TODO: 总结 总的来说,终于在 C++20 中看到 Concepts/Ranges/Modules 这些令人兴奋的特性,这对于一门已 经三十多岁『高龄』的编程语言,依然是充满魅力的。0 码力 | 83 页 | 2.42 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化#ifdef WITH_TBB 包围住需 要用到 tbb 的部分,这样即使没有 tbb 的同学也能 正常编译其他没有 tbb 的 benchmark 。 • 毕竟微软的钱全用在买暴雪上了,没钱搞包管理器。 实战案例:矩阵乘法 • 分析访存规律: • a(i, j) 始终在一个地址不动(一般)。 • b(i, t) 每次跳跃 n 间隔的访问(坏)。 • c(t, j) 连续的顺序访问(好)。0 码力 | 147 页 | 18.88 MB | 1 年前3
共 6 条
- 1













