首页

一个线程何时才能收到Window消息?

你(可能)不知道的 和Windows消息系统打过交道的人都会知道:GetMessage和PeekMessage这两个API会从窗口的消息队列中检索消息,这些消息时由DispatchMessage分发到窗口的。 大部分人也知道:GetMessage和PeekMessage也会自己分发不进入消息队列的消息。(所有挂起的非队列消息将会被分发,然后只有第一个进入队列的消息会被返回) 但是大多数人不知道的是...

小技巧:一种简单的判断文件权限的方法  

有这么一个简单需求 有时候,你可能希望判断是否对文件或者文件夹有某种权限,但是又不想实际操作,只是简单的判断而已。举个例子,你可能向快速地知道是否对某个文件夹是否有删除里面文件的权限。 一种方法是:获取该对象的ACL,然后检查是否当前用户拥有希望的权限。有一个API AccessCheck可以做这件事情,调用起来也比较简单。 这个时候,可能你会想:”等会,系统里应该有一个完整的安全组件...

轶事一则:一位客户的反馈

一个命令行选项引发的故事 下面截取自一位客户在使用Windows 95时的使用反馈,这件事已经过去很多年了,但我依然印象深刻,难以忘怀。 <<<<<<<<<<<<<<<<<<<<< ID: 13726 时间:1996-07-29 17:27:41.997 姓名:<隐去...

VS2019: C++代码静态分析改进和更新  

写安全的C++代码 C++代码分析团队的目标是:让我们广大的C++开发者尽可能安全地编写代码。我们正在添加更加丰富的代码检查规则,并修复开发者在社区上反馈的高优先级的Bug。我们感谢一直参与其中的开发者。接下来,C++开发团队将会每次的Visual Studio新版本发布时提供一个完整的代码分析相关的Bug修复列表。 下面我们汇总了从VS2019 16.8到16.9中,修复的所有代码分析和Cpp ...

说说上古时代的主线程模式

史上(可能)让你最疑惑的词:marshal 在COM世界,曾经有着一个颇为神秘的东西:主线程模型(main threading model)。 它主要用在显式COM线程模型还没有发明的时期,可以说,主线程模型是多线程正式来临之前的那一段时期的特殊产物。 进程的第一个线程会初始化COM库并被称之为”主”线程。(可能它是在套件模型中第一个初始化COM库的线程,我不太记得了。) ...

桌面外壳API之小技巧一枚

标志位SHGFI_USEFILEATTRIBUTES的用法 对于Windows桌面外壳API SHGetFileInfo来说,你可以向它传递一个特殊的标志位SHGFI_USEFILEATTRIBUTES。那么,这个标志位是什么意思呢? Well,它的意思是告诉Windows外壳:请不要访问磁盘,并且假装我指定的文件/文件夹存在,并且文件/文件夹的属性是我传递给你的dwFileAttributes参...

最小化所有窗口和显示桌面的区别

一个小问题 “最小化所有窗口”的键盘快捷方式是Win + M,”显示桌面”的键盘快捷方式是Win + D。这两种操作,看起来好像都差不多,那它们实际上有什么不同呢? “最小化所有窗口”,从字面上很容易理解。它将所有支持”最小化”操作的窗口全部最小化。你可以通过从”系统”菜单中选择...

人们不会注意一个程序的内部变化

程序的内部变化和外部变化 有些人会经常向我抱怨:为什么这么多年过去了,计算器和记事本这两个小工具一点变化都没有? 实际上,它们确实改变了,只是你没有注意到而已。 如果你观察下你的记事本程序,你会发现它多了一些额外的菜单。 还有计算器这个程序也经历过很多次”大修”。 对于下面的用户反馈,我通常不会感到意外: “微软为什么要花很多时间使Windows操作看起来很酷?...

Visual Studio 2019中的IntelliSense改进  

是时候汇总一下了 在已经发布的几个Visual Studio 2019版本中,我们已经对C++ IntelliSense做了相当多的改进和完善。在今天的这篇文章中,我们会汇总这些改进要点,如果你对Visual Studio 2019感兴趣,或者希望在编写C++代码的时候更加有效率,欢迎继续阅读。 如果你一直看我们的博客更新,则应该对下面的一些要点会比较熟悉。我们希望这篇文章会给你带来帮助。 大部分...

官宣:用于MSVC的Address Sanitizer正式发布  

官宣一则 特别感谢Aaron Gorenstein对本文内容的贡献。特别感谢Kevin Cadieux和Jim Radigan的贡献。 我们非常高兴地宣布:C++ Address Sanitizer(ASan)在Visual Studio 2019 v16.9中正式可用。感谢那些在早期的测试版本中参加体验的开发者,是你们的反馈和建议帮助我们不断的去改善此项功能。 Address Sanitizer...