LANG_GERMANGetKeyboardLayout(0) は、スレッドが、SUBLANG_GERMAN、LANG_ENGLISHおよびの何らかの混合物を使用していると判断したようですSUBLANG_ENGLISH_US。これを新しいプロジェクトに入れてみましたが、問題は解決しません...テストに使用したコードは次のとおりです。
#include <iostream>
#include <Windows.h>
#include <kbd.h>
int main(int argc, char* argv[])
{
std::cout << "Keyboard Layout ID: " << GetKeyboardLayout(0) << "\n";
std::cin.ignore(100, '\n');
return 0;
}
04070409それは可能ではないと思いますが、戻ってきます。(それとも? はいの場合、どのようにこれを構築しますか?) msdnMAKELANGIDによると、これは上記の言語の混合にマップされます。withを使ってみましたが、標準(04090409) のレイアウトしか得られません。ドキュメントを間違って読んで何かを台無しにしただけですか、それともここで何が起こっていますか? 私はアイデアがありません...LoadKeyboardLayoutMAKELANGID(LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN)LANG_ENGLISH, SUBLANG_ENGLISH