Я хотел бы перенести старый проект C ++ MFC из Visual Studio 2005 в более новую версию. В проекте используется многобайтовый набор символов, который, как я знаю, больше не поддерживается в текущей Visual Studio. Поэтому первым шагом должно стать создание проекта, независимого от набора символов. Коллега на работе сказал мне, что я могу сделать это, если я положу макрос _T()
вокруг каждого текста.
К сожалению, проект содержит много статического текста, и добавление макросов может занять несколько недель.
Нет ли другого пути?
К сожалению, другого пути нет. Вы можете попробовать автоматизировать редактирование текста с помощью регулярных выражений или некоторого текстового редактора, такого как sed
,
Но лично я предпочел бы проверить весь код вручную, чтобы не осталось многобайтового кода, связанного с символами: используйте _tcslen
вместо strlen
, _TCHAR
вместо char
, так далее.
Другой вариант, который нужно рассмотреть, это сделать код явно использующим widechars: wcslen
вместо strlen
, wchar_t
вместо char
, L"some string"
вместо _T("some string")
, так далее.
UPDТакже я нашел несколько хороших новостей: «Предупреждение об устаревании [поддержка MFC для MBCS устарела] было удалено из MFC в VC2017, и мы продолжим предоставлять поддержку MBCS в будущих выпусках». (https://blogs.msdn.microsoft.com/vcblog/2013/07/08/mfc-support-for-mbcs-deprecated-in-visual-studio-2013/), так что, вероятно, вы можете просто оставить все как есть.
Других решений пока нет …