首页

说说DS_SHELLFONT这个对话框风格  

如果在对话框模板中用到了DS_SHELLFONT,则表明你希望使用Windows 2000 默认的外壳字体(Default Shell Font)。但是这并不意味着这一定可以实现。如果你希望你的对话框具备Windows 2000的风格样式,则你需要做好下面的3件事情,如果第4件事情也能实现,则更好: 1. 使用DIALOGEX对话框模板,而不是DIALOG。 2. 在对话框风格中设置DS_SHEL...

如何判断当前是否运行在64位的Windows?  

如果你想使用代码的方式来判断一个32位的程序是否运行在一个64位的Windows系统上,你可以使用这个API: IsWow64Process。今天我们来仔细看看。 请不要轻易详细网上其他人的一些说法,将64位处理器的列表硬编码到你的程序中。 你可能会认为,在第一次修改64位处理器的硬编码列表(例如,将 x64 添加到 ia64 时)之后,人们会吸取教训。 但是,如何从 64 位进程中以编程方式检测...

新功能速递:Visual Studio Code中的C++调试  

距离我们上一篇关于VS Code中C++开发的博客文章已经过去了一阵子了,我们一直在努力开发新功能和对现有Bug进行修复,今天我很高兴地向大家介绍VS Code中最新的C++调试器改进,包括,对Apple M1芯片的支持,数据断点和新的运行/调试按钮。 对Apple M1的支持 去年,我们为Apple Silicon ARM64架构启用了语言服务器支持,这意味着你现在可以在 Apple M1 芯片...

为什么Win64开发团队选择LLP64数据模型?  

在Channel 9上,有一位观众提到:”我实在没想到数据类型的长度变化之后,会对各类应用程序产生如此大的影响。” 于是,我决定是时候写一篇文章,来介绍下Win64下的数据模型了。 Win64开发团队选择了LLP64数据模型,在这个数据模型中,所有的整数类型都维持32位的长度,仅仅是指针类型扩展到了64位,这是为啥呢? 除了官方技术文档中给出的一系列理由之外,还有另外一个原...

小技巧:配置自动更新需要的网络带宽  

在默认情况下,Windows自动更新所依赖的后台智能传输服务(Background Intelligent Transfer Service,简称BITS)会在网络空闲的时候下载更新包。通常这不会有什么问题。除了以下两种情况: 第一种情况是,如果你置身于一个大型的局域网(LAN),并共享一个单一的DSL网络连接,则可能有造成问。BITS它根本不会知道你正在使用的DSL网络是共享式的。由此引发的结果...

Visual Studio 2022:新的枚举检查规则  

实际上,我们内部有一个C++静态分析团队,他们的主要目标是:让C++开发者尽可能地编写安全的代码。静态分析团队努力工作,持续地添加代码安全检查规则,并积极解决C++开发社区提交的各类高优先级问题。感谢各位开发者一直以来给我们提供的使用反馈和建议。今天的文章的内容,主要是概述了一些关于枚举使用相关的代码检查规则,这些规则会指出枚举的误用场景,并对现有的枚举检查做出了一些改进。 概述 我们引入了三项检...

CreateProcess不会等待进程启动  

众所周知,我们可以调用CreatProcess这个API来创建一个进程。这里我使用到了”创建”,而不是”启动”,也就是说,CreatProcess只是创建一个进程,而不是启动它。 CreateProcess在返回的之前,不会等待进程启动是否完成。它只是简单地创建一个进程对象,然后剩下的工作就不再由它负责了。 那么,是由谁来初始化这个进程呢? 你答对了...

使用吉特哈布Codespaces和Visual Studio Code进行C++开发  

关于缩写 为了避免行文太过膨胀,我可能会将如下全称以缩写代替,请注意。 VSC: Visual Studio Code 吉特哈布:猿友应该都懂,而且因为文章限制,我也打不出来。 好了,开始呗那就。 不管你是刚刚开始学习C++的新手,或者是一名C++开源代码贡献者,又或者是一名经验丰富的嵌入式开发者,通过将吉特哈布Codespaces和Visual Studio Code相结合,可以显著地降低开发和...

WHEA-Logger 17错误:发生了已更正的硬件错误  

要记录一下,以免以后阿尔茨海默。 不瞒各位,最近 TopomelBox 开发进度接近停止,源于我一直在折腾我的老爷机(联想-天逸510)。这老伙计跟了我三年多,兢兢业业,也还算皮实。但是最近一个月,经常动不动就蓝屏错误:WHEA_UNCORRECTABLE_ERROR。 本来想着如果有个崩溃转储也还行,可以用WinDbg研究研究。但是发现,转储直接生成失败。看起来,有点和内存和硬盘有点关系了(?...

VS2022帮助游戏开发者提高生产力  

引言 自从Visual Studio 2022发布以来,我们一直在努力提升游戏开发者的生产力。在我上一次的Microsoft Game Dev谈话中,我分享了为什么Visual Studio是游戏开发者的终极开发IDE的观点。我也和Double Fine Productions的开发人员一起演示了他们最喜欢的功能特性(在开发Award-winning Psychonauts 2的时候)。 接下来,...