Win98和WinXP(或更高版本)之间的Windows GDI差异
发布时间:2022-07-05 13:51:57 154
相关标签:
我有一个在Win98上运行良好的游戏(我没有源代码),但是在WinXP或更高版本(即WinXP/7/8/10)上,某些场景下的文字丢失。顺便说一句:这与语言或区域设置无关,因为我在 Win98 和 WinXP(或更高版本)上将它们设置为相同的值。
游戏本身不检查Windows版本,所以我很确定这个问题是由Win98以来Windows GDI的内部变化引起的。
我找不到任何描述每个 Windows 版本之间 GDI 更改或差异的 Microsoft 官方文档。有没有人有类似的经历并且可能对这个问题有所了解?
PS:我也尝试过在兼容性设置中将 Windows 版本覆盖到 Windows 98 甚至 Windows 95,但它们都没有帮助。
PPS:我尝试调试这个问题,我可以看到文本确实打印到 GDI 位图上,但不知何故没有正确呈现到屏幕上。这是我无法弄清楚的部分,因为游戏在 Win98 和 WinXP(或更高版本)上运行相同的代码。
PPPS:我花了更多时间进行调试,发现问题出在带有 SRCPAINT 的 StretchDIBits() 中。源 DIB 是黑色背景上的白色文本。此函数返回没有错误,但不知何故实际上并未渲染到目标 DC。当我将模式从 SRCPAINT 更改为 SRCCOPY 时,确实会显示文本(背景也被黑色覆盖,这是预期的)。WinXP 或更高版本上的 SRCPAINT 似乎存在内部问题。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报