Итак, решение №1 (проверено):
char* wctoansi(UnicodeString us) {
wchar_t* wstr = us.c_str();
char* ascii = new char[wcslen(wstr) + 1];
wctomb(ascii, *wstr);
return ascii;
}
И решение №2 (не проверено):
char* asAnsi(wchar_t* wstr) {
char* ansi = new char[wcslen(wstr) + 1];
for (UINT i = 0; i < wcslen(wstr) / 2; i++) {
int srca = wstr[i];
if (srca >= int(L"а") && srca <= int(L"я"))
ansi[i] = int("a") + (srca -int(L"а"));
else if (srca >= int(L"А") && srca <= int(L"Я"))
ansi[i] = int("А") + (srca -int(L"А"));
else {
ansi[i] = (char)wstr[i];
if (wstr[i] == 0)
break;
}
}
return ansi;
}
Творческих успехов!