Риски запуска в однобайтовом символьном приложении в ОС MBCS - PullRequest
2 голосов
/ 29 апреля 2011

У меня есть приложение MFC, где набор символов "Не установлен". Какие риски связаны с запуском этого приложения в ОС с кодовой страницей многобайтового набора символов?

Ответы [ 2 ]

1 голос
/ 29 апреля 2011

Параметр «Набор символов: не установлен» не определяет ни _MBCS, ни _UNICODE. Это означает, что вы используете * A ряд функций. Эти будут возвращать строки MBCS, даже если _MBCS не определено.

Если _MBCS не влияет на строки, возвращаемые функциями * A, то что это делает? Он отображает некоторые функции <tchar.h> tcs* в их версии mbs* вместо вариантов str* или wcs*. Например. без _MBCS, _tcsrev отображается на strrev, а не _mbsrev.

Следовательно, вы не сможете перевернуть многобайтовые строки, полученные из ОС, или изменить их иначе.

0 голосов
/ 28 июня 2014

Риски:

1) Если вы используете неанглийские тексты и пользователь вводит, скажем, русский, некоторые русские символы, которые не сопоставлены с MBCS или требуют слой Charset, будут извлеченыкак '?'

2) Вы должны сообщить клиенту, что приложение.принимает только на английском языке и не гарантирует, что приложение, при вводе неанглоязычных символов, будет правильно принимать или извлекать тексты не на английском языке.

3) Любые тексты с символами на иностранном языке могут привести к нежелательному или нежелательному преобразованию акцентови диакритические знаки к чему-то еще.

...