Там ANSI. Складываем, копируем, перемещаем, сравниваем строки. Вообщем сплошной тетрис. Это в одих модулях.А что там использовано?
В других модулях - объекты доступа к данным RDBMS с суррогатным COM-подобным интерфейсом.
ANSI C? Для тех строк есть и мультибайтовые, и "широкие" аналоги. Контекстная замена. Ещё все строчные константы передекларировать прицепив L. Ещё все типы - в широкие - по контексту. char -> wchar_t и т.п. Ещё UNICODE. Ещё буферы под строки правильно выделять. Если такая проблема вообще стоит, кто знает может там sizeof от символа задействован.vg писал(а):Там ANSI.А что там использовано?
Ты думаешь, а чем я сразу занялсяANSI C? Для тех строк есть и мультибайтовые, и "широкие" аналоги. Контекстная замена. Ещё все строчные константы передекларировать прицепив L. Ещё все типы - в широкие - по контексту. char -> wchar_t и т.п. Ещё UNICODE.
Дык это два дня работы в поту (с отладкой и мини тестированием в разных позах)Одним словом - невиликая проблема. И декларации, и вызовы функций заменяются контекстной заменой. Потом запустил компиляцию и пошёл по оставшимся ошибкам добивать.
Многократно подобными и более гадкими преобразованиями занимался. Не вижу непреодолимых и даже существенных препятствий.
Код: Выделить всё
//---------------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
…
switch (message) {
case WM_CREATE:
WndProc_OnCreateToolBar(hWnd);
break;
case WM_PAINT:
GetClientRect(Tb.m_hWndToolBar, &Rect);
hdc = BeginPaint(hWnd, &ps);
GetClientRect(hWnd,&Rect);
DrawText (hdc, _T(" а не пойти бы тебе, vg, ....") , -1, &Rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hWnd, &ps);
break;
…
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}