#include <windows.h>
#include <stdio.h>
void main()
{
CPINFOEX cp;
GetCPInfoEx(CP_ACP, 0, &cp);
printf("CP_ACP: %d\n", cp.CodePage);
GetCPInfoEx(CP_THREAD_ACP, 0, &cp);
printf("CP_THREAD_ACP: %d\n", cp.CodePage);
printf("UserDefaultLangID: %d\n", GetUserDefaultLangID());
printf("SystemDefaultLangID: %d\n", GetSystemDefaultLangID());
}
outputs under XP
CP_ACP: 1251
CP_THREAD_ACP: 1251
UserDefaultLangID: 1049
SystemDefaultLangID: 1049
but under Windows 7
CP_ACP: 1251
CP_THREAD_ACP: 1252
UserDefaultLangID: 1049
SystemDefaultLangID: 1049
Why 1252 code page for CP_THREAD_ACP? Is it a Windows bug or just a
misconfuguration? If the latter how to fix it?