gpt4 book ai didi

c++ - ToUnicode 调用 ToUnicodeEx 吗? ToUnicodeEx 在内核空间线程上改变了什么?

转载 作者:可可西里 更新时间:2023-11-01 14:45:07 25 4
gpt4 key购买 nike

到UnicodeEx: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646322(v=vs.85).aspx

到Unicode: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646320(v=vs.85).aspx

似乎两者之间的唯一区别是 ToUnicodeEx 允许传递输入语言环境标识符参数,而 ToUnicode 不允许。我的问题是:ToUnicode 本身是否调用 ToUnicodeEx?

此外,在 ToUnicodeEx msdn 页面的底部,在备注部分,我们看到:当 ToUnicodeEx 转换虚拟键代码时,它还会更改内核模式键盘缓冲区的状态。此状态更改会影响死键、连字、alt+数字键盘键输入等。如果与 TranslateMessage 一起使用(它也会更改内核模式键盘缓冲区的状态),它也可能会导致意外的副作用。

有谁知道内核模式 kb 缓冲区到底在做什么?

最佳答案

ToUnicodeToUnicodeEx 都是 NtUserToUnicodeEx 的包装器,是的,唯一的区别是 ToUnicode 的最终参数为 NULL 和用户为 ToUnicodeEx 提供的。

因为死键用于从多个单独的按键中生成字符,所以操作系统必须保留以前按下过哪些死键的历史记录。我认为所有注释都在警告您,ToUnicodeExTranslateMessage 都使用相同的历史记录 - 因此混合调用这两个函数可能会产生不可靠的结果。

关于c++ - ToUnicode 调用 ToUnicodeEx 吗? ToUnicodeEx 在内核空间线程上改变了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17413358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com