я делаю где то так, правда для mingw. Раньше это срабатывало для VS2005 и Borland. Евли ошибка, то к функциям POSIX, вроде нужно добавить подчеркивание перед функцией
char *s;
s = getenv("LC_ALL");
if (s == NULL || s[0] == '\0') s = getenv("LC_CTYPE");
else if (s == NULL || s[0] == '\0') s = getenv("LANG");
else s = "C";