c++ - 我如何比较 HKL 和 char[]?

标签 c++ char compare

我有

DWORD dwThreadID = GetCurrentThreadId();
HKL hCurKeyboard = GetKeyboardLayout(dwThreadID);

返回 HKL 当前键盘我需要将它与一些字符进行比较

char defaultLanguage[64]="0x04090409";

我如何比较 HKL hCurKeyboarddefaultLanguage

或者我如何用这个值创建一些 HKL "0x04090409"

        char defaultLanguageLayout[64] = "0x04090409";
        DWORD dwThreadID = GetCurrentThreadId();
        HKL hCurKeyboard = GetKeyboardLayout(dwThreadID);
//->>       if(hCurKeyboard!=defaultLanguageLayout) 
        {

            UINT i;
            HKL hklCurrent;
            UINT uLayouts;
            HKL * lpList;

            uLayouts = GetKeyboardLayoutList(0, NULL);
            lpList = (HKL*) malloc(uLayouts * sizeof(HKL));
            uLayouts = GetKeyboardLayoutList(uLayouts, lpList);

            for(i=0; i<uLayouts; i++)
            {
                hklCurrent = *(lpList + i);

//->>               if(hklCurrent == defaultLanguageLayout){
                    ActivateKeyboardLayout(hklCurrent, 0);
                }
            }

提前致谢。

最佳答案

根据 http://msdn.microsoft.com/en-us/library/windows/desktop/ms646305(v=vs.85).aspx ,最好的做法是:

    HKL defaultLanguageLayout = LoadKeyboardLayout("0x04090409", KLF_SUBSTITUTE_OK);
    DWORD dwThreadID = GetCurrentThreadId();
    HKL hCurKeyboard = GetKeyboardLayout(dwThreadID);
    if(hCurKeyboard!=defaultLanguageLayout) {

但我对键盘布局的了解还不足以知道第二个参数是否正确。

关于c++ - 我如何比较 HKL 和 char[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10952921/

相关文章:

Objective-c EXC_BAD_ACCESS(代码=2,地址=0x42)

c++ - 如何检测浮点表示错误 ...99999... 或 ...00000... 并在 C++ 中更正它们

c++ - 指针 vector 与值 vector 对大内存块和小内存块的性能损失

c++ - 将迭代器作为函数参数传递

string - 比较两个字符串的元素

php - 将数组值与同一数组中的其他值进行比较

python - python SWIG对象比较

带有行尾的 C++ 字符串用于归档空行

c++ - 字符串中的重音,如何将重音字符存储在单个字符中

c - 值(value)在C++中正在发生变化,我不知道为什么