1

我有一个使用 winapi 函数的程序。当它在 WinXP(32 位)或 Win7(64 位)上运行时,一切正常。但是在 Win8 (64bit) 上有一个 bug:有时程序会挂在这行代码上

HDC hDisplay = CreateDC("DISPLAY", NULL, NULL, NULL);

可能是什么原因?

ps 它是在 WinXP 32 位平台 Win32 上的 MSVC 2005 中构建的。

4

3 回答 3

1

尝试:

CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL)
于 2013-06-26T07:50:23.597 回答
0

我已经设法为 64 位平台重建程序,它现在可以工作了。

于 2013-06-27T05:16:19.047 回答
0

虽然这个问题很老,但我们今天遇到了类似的问题。

我们有代码试图以这种方式查询打印机:

hdc = CreateDC(pi->pDriverName, pi->pPrinterName, pi->pPortName, NULL);

pi结构在哪里PRINTER_INFO_2https://docs.microsoft.com/en-us/windows/win32/printdocs/printer-info-2)。

在我们的 Server 2012R2 盒子上安装 Microsoft KB4517298 ( https://support.microsoft.com/en-us/help/4517298/windows-8-1-update-kb4517298 ) 后,这条线似乎没有明显的原因挂起。以 64 位重新构建应用程序似乎可以修复它,就像它对原始海报所做的那样。但是,我们仍然不知道为什么会发生这种情况。删除此修补程序可解决该问题,然后重新应用它会再次导致该问题。

我们正在与我们的供应商合作,看看我们是否可以了解为什么最近的 Windows 更新让我们崩溃(以及如何更好地修复它!)。

于 2019-08-23T16:51:20.693 回答