【发布时间】:2019-08-24 00:51:20
【问题描述】:
我有一个使用 winapi 函数的程序。当它在 WinXP(32 位)或 Win7(64 位)上运行时,一切正常。但是在Win8(64位)上有个bug:有时程序会在这行代码挂起
HDC hDisplay = CreateDC("DISPLAY", NULL, NULL, NULL);
这可能是什么原因?
附言它是在 WinXP 32 位平台 Win32 的 MSVC 2005 中构建的。
【问题讨论】:
-
它挂起?就像完全停止执行一样?您是否尝试过使用调试器并单步执行代码?
-
另外,代码很可疑,因为您使用的是窄字符串文字。即使在 Windows XP 时代,一切都是 Unicode。您应该使用
L"DISPLAY"(或至少一个自动处理转换的宏,例如TEXT("DISPLAY"))。 -
问题可能出在其他地方,并且仅在该行上表现出来。试试我也会说的调试器...
-
在这里工作正常。除非你给一个repro,否则很难解决。
-
这是一个环境问题。视频驱动程序是主要嫌疑人。对于新的 Windows 版本来说并不罕见。
标签: winapi visual-c++ windows-8