小编Cod*_*ard的帖子

Visual Studio 2015 Update 3 - C++编译器错误?

我们观察到一个奇怪的情况,VS2015 Update3编译器会在没有明显原因的情况下省略部分代码.

我们发现了

  • 这种情况发生在VS2015 Update3中(帮助|关于说14.0.25431.01更新3,cl.exe版本19.00.24215.1)
  • 这在VS2015 Update2中不会发生(帮助|关于说14.0.25123.00更新2,cl.exe版本19.00.23918)
  • 只有在打开优化时才会发生这种情况(例如,在默认的发布配置中)
  • 发生在x86和x64中
  • 将代码片段插入全新的"Win32控制台应用程序"(我的意思是,不需要花哨的命令行选项)时会发生错误

我们设法将这个代码段的罪魁祸首最小化:

#include <stdio.h>
#include <tchar.h>
#include <stdlib.h>

int _tmain(int, _TCHAR*[])
{
    volatile int someVar = 1;

    const int indexOffset = someVar ? 0 : 1;    // Loop omitted
    // const int indexOffset = !someVar;        // Loop omitted
    // const int indexOffset = 0;               // Good
    // const int indexOffset = 1;               // Good
    // const int indexOffset = someVar;         // Good
    // const int indexOffset = someVar + 1;     // …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors compiler-optimization visual-studio-2015

35
推荐指数
1
解决办法
1816
查看次数

Win10黑暗主题-如何在WINAPI中使用?

October 2018 Update (version 1809)Win10 开始,Windows资源管理器中已支持Dark主题。

可以在这里配置:

  • 用户界面: Desktop | Context Menu | Personalize | Colors | Choose your default app mode = Dark
  • 注册表:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme=DWORD:0

尽管此设置已经存在了一段时间,但它仅影响UWP应用程序。但是,在此Windows 10版本中,它也会影响Windows资源管理器,后者是一个桌面应用程序。这意味着Windows现在对其具有内部支持。但是,Windows资源管理器以外的桌面应用程序目前不受影响。

我想在我的应用程序中使用它。它是如何实现的?是否有某种方式(清单,WINAPI等)订阅新的深色主题?

更新1:
我注意到Windows资源管理器控制面板部分亮而部分暗,因此它应该是每个窗口设置,而不是每个进程设置。

另一个示例:在所有桌面应用程序中,“打开文件”对话框均变暗,而应用程序本身仍保持旧的主题。

更新2:
我尝试SetWindowTheme(hwnd, L"Explorer", NULL);TreeViewListView。这会明显改变TreeView样式(+展开按钮变为V),但窗口保持白色。

windows winapi themes

8
推荐指数
2
解决办法
1977
查看次数