Подскажите, пожалуйста.
В коде ниже UNICODE-проекта не делается преобразования строки при помощи MuliByteToWideChar. При копиляции в VC++ 7.0, при дефолтовых региональных настройках Russian XP (eng.) – имеем нормальные русские символы:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
…
switch (message) {
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
GetClientRect(hWnd,&Rect);
DrawText (hdc, _T("Привет") , -1, &Rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hWnd, &ps);
break;
…
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
Вопросы:
Как такое возможно? Кто выполняет эти преобразования? Что происходит с памятью, выделенной для строки?
Спасибо.
26.04.04 22:19: Перенесено модератором из 'C/C++' — WH