首页

显示字符串如何避免出现方框  

你们应该都看见过我说的边框吧? 当你显示一个字符串,但是字符串中的某些字符不被当前字体所支持,这个时候,你将会看到系统会使用一个方框来代替这个不可显示的字符。 让我们回忆我们的例子程序,然后,我们在PaintContent函数中添加如下的代码: 在上面的代码中,我们构造了一个比较有意思的字符串:它的前三个字符是罗马字母的”ABC”,然后是西里尔的”ABC...

如何检测”大字体”?  

当人们问这个问题,”我应该怎样判断当前处于大字体模式?”,他们实际上问的是,如何判断系统是否处于一个”特殊的DPI模式”,而不是问”大字体”。 Windows默认使用标准的96 DPI,也即:一英寸包含96个点。换句话说,如果Windows想在屏幕上绘制一根一英寸长的线条,则它会绘制96个像素点。这就是DPI的含义。 当然了,...

使用VS2022和WSL2开发和调试C++代码  

近日,VS2022为C++开发者新引入了原生WSL2工具集支持。这个工具集目前已在VS2022 v17.0 预览版2中可用。 WSL2是用于Linux系统的Windows子系统 (WSL) 架构的新一代版本,可提供更好的Linux文件系统性能、图形用户界面支持和完整的系统调用兼容性。 Visual Studio中的WSL2工具集可以用来在VisualStudio中直接开发和调试基于WSL2发行版的...

C++代码扫描基础知识  

在去年的时候,吉特哈布发布了代码扫描功能,这个功能可以将代码安全检查集成到开发者现有的持续集成(CI/CD)环境中。 在今天的这片文章中,我们将会演示CodeQL和吉特哈布Actions的基础知识,有些人可能对这个CodeQL不太理解,说白了,CodeQL就是代码扫描组件的底层分析引擎。(好像没说的那么白,没关系,且看下文) 神马是CodeQL? CodeQL是一个分析引擎,用来对照一个自动生成的...

致完美主义者:0个错误,0个警告  

首先,我假定你是一个完美主义者。 在一个项目中,为了实现完美而干净利落的代码,你开启了最严格的的编译警告级别,或者使用了最为严格的代码分析规则,但对于那些不属于你的项目中的外部代码库,你还是会看到一大波编译警告,对于一个完美主义者来说,编译完成后没有看到”0错误0警告”是绝对不能接受的。 在Visual Studio 2019预览版中,我们提供了一种简单的方法来将这些头文件...

STL可视化调试工具  

今天,我们很高兴地宣布,现在可以在吉特哈布上为Visual Studio中的STL可视化调试工具贡献代码了。 背景知识 通过修改一个以.natvis扩展名结尾的可视化配置文件,我们可以控制原生变量类型在Visual Studio中调试窗口的展现形式,如下图所示: 我们一直致力于修复可视化调试工具的现有问题并对尝试其进行功能扩充,但是随着C++20标准中新的变量类型的出现,它们已经落后于社区和C+...

为XBox开发者提供的ASan早期发布版本  

本文来自XBox Advanced Technology Group (ATG)的首席软件工程师Tad Switf。 介绍 Address Sanitizer (ASan) 是一款用来查找难以追踪的内存相关Bug的利器。自从Visual Studio 16.9中的MSVC发布开始,我们一直和我们的合作伙伴一起并肩工作,目标是将ASan这个工具带到XBox平台。 随着最近发布的XBox六月GDK,我...

关于列表控件的定位属性

疑惑的存在,代表着你还未能彻底明白 有时候,我会收到一个关于列表控件ListView的问题,这个问题体现了大家对可定位和不可定位列表缺乏深刻的理解。 这个问题通常是这样的:”我通过LVM_INSERTITEM将一行插入到列表控件中,但是这个项目直接显示在了列表控件的最底下,而不是我希望的位置。” 为了弄明白这是怎么回事儿,你需要首先明白一个概念,即:列表控件可以分为两种类型...

添加删除程序是怎么知道软件的大小的?  

有时候,咱还得靠猜 如果一个程序自身不能报告它的大小和其他信息,添加删除程序只能靠猜测了。 问题在于,添加和删除程序没有一种很明确的方法来将软件列表中的条目和实际的程序对应起来。 在软件列表中的每一个条目,都来自于以下注册表: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall 这个注册表的唯一必须提供的属性...

VS2019:静态分析问题修复,优化和其他更新  

C++静态分析开发团队一直致力于帮助C++开发者尽可能地编写安全的代码。我们正在添加越来越多的代码安全检查,并解决来自于C++开发社区里反馈的影响比较广泛的问题。 在此,我们感谢一直以来陪伴着我们的用户,你们的使用反馈是我们前进的方向。 在今天的文章中,我将汇总从VS2019 v16.9到v16.10版本中有关代码分析和CppCoreCheck的功能改进和问题修复。 新特性 > C26479...