Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE? / 11 сообщений из 11, страница 1 из 1
14.09.2005, 14:44
    #33269129
Сергей Ильич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE?
Визард сгенерировал MFC проект и определил там макрос _MBCS. Меня бы больше устроил вариант с _UNICODE. Я поменял _MBCS на _UNICODE, но проект не собирается из-за отсутствия симоля WinMain@16 при линковке.
Хотелось бы узнать все же, как мне сделать так чтобы по дефолту TCHAR был определенен как WCHAR, и по дефолту вызывались бы W - варианты API функций.
...
Рейтинг: 0 / 0
15.09.2005, 16:31
    #33271750
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE?
Возможно.
Твои проблемы видимо лечатся Rebuild All. Если нет - это отдельная тема. Пиши больше.
...
Рейтинг: 0 / 0
15.09.2005, 18:16
    #33272069
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE?
Выдержа из MSDN

авторUnicode Programming Summary
...
Specify entry point.
In the Output category of the Link tab in the Project Settings dialog box, set the Entry Point Symbol to wWinMainCRTStartup .
...
Рейтинг: 0 / 0
15.09.2005, 18:18
    #33272075
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE?
То есть, убери _MBCS, определи _UNICODE и укажи в опциях сборки (Link)точку входа (entry point) wWinMainCRTStartup и пересобери проект.
...
Рейтинг: 0 / 0
16.09.2005, 11:53
    #33273127
Сергей Ильич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE?
Анатолий ШироковТо есть, убери _MBCS, определи _UNICODE и укажи в опциях сборки (Link)точку входа (entry point) wWinMainCRTStartup и пересобери проект.

BTW: А что такое _MBSC - UTF-8? То есть если я собираю проект с _MBSC то у меня честный UTF-8? А как при этом работают *A версии WinAPI функций? тоже возращают все в UTF-8?
...
Рейтинг: 0 / 0
17.09.2005, 21:06
    #33275094
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE?
_MB CS - mutlybyte charecter string, т.е. UTF-8.
_UNICODE в понимании MS - UTF16.
...
Рейтинг: 0 / 0
17.09.2005, 21:07
    #33275095
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE?
_MB CS - mutlybyte charecter string, т.е. UTF-8.
_UNICODE в понимании MS - UTF16.
...
Рейтинг: 0 / 0
17.09.2005, 23:37
    #33275163
Сергей Ильич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE?
MasterZiv_UNICODE в понимании MS - UTF16.
А как действуют функции семейства *A? В моем понимании они конвертируют параметры в UTF-16 в соответствии с текущей кодировкой и потом вызывают соответствующие функции сейейства *W.
Правилно ли я полагаю, что при работе в _MBCS текущей кодировкой является UTF-8?
...
Рейтинг: 0 / 0
18.09.2005, 12:03
    #33275262
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE?
Сергей Ильич
А как действуют функции семейства *A? В моем понимании они конвертируют параметры в UTF-16 в соответствии с текущей кодировкой и потом вызывают соответствующие функции сейейства *W.


Ничего они не конвертируют. Есть функции *A , есть *W. Первые принимают
символьные и строковые параметры как указатели на char, вторые - как на short (т.е. это UTF-16). Каждая функция * при определении UNICODE транслируется препроцессором в *W, а при его отсутствии - в *A

Сергей Ильич
Правилно ли я полагаю, что при работе в _MBCS текущей кодировкой является UTF-8?

Не совсем. В ANSI - режиме Windows может работать как с однобайтовыми кодировками, так и с кодировками с переменым размером символа. Это зависит от кодовой страницы. _MBCS подразумевает, что кодовая страница может быть многобайтовой. А отсутствие - что не может.
...
Рейтинг: 0 / 0
18.09.2005, 18:00
    #33275457
Сергей Ильич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE?
MasterZiv Сергей Ильич
А как действуют функции семейства *A? В моем понимании они конвертируют параметры в UTF-16 в соответствии с текущей кодировкой и потом вызывают соответствующие функции сейейства *W.

Ничего они не конвертируют. Есть функции *A , есть *W. Первые принимают
символьные и строковые параметры как указатели на char, вторые - как на short (т.е. это UTF-16). Каждая функция * при определении UNICODE транслируется препроцессором в *W, а при его отсутствии - в *A

про препроцессор я знаю и знаю что API функции TextOut не существует. Есть TextOutA и TextOutW, а TextOut - это макрос проепроцессора. Но не могу поверить, что там дублируется один и тот же код, который отличается только представлением параметра.

MasterZiv Сергей Ильич
Правилно ли я полагаю, что при работе в _MBCS текущей кодировкой является UTF-8?

Не совсем. В ANSI - режиме Windows может работать как с однобайтовыми кодировками, так и с кодировками с переменым размером символа. Это зависит от кодовой страницы. _MBCS подразумевает, что кодовая страница может быть многобайтовой. А отсутствие - что не может.
А от чего зависит текущая кодовая страница? Выставляет ли ее MFC в CP_UTF8 если проект собран с _MBCS?
...
Рейтинг: 0 / 0
19.09.2005, 20:41
    #33277587
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE?
От операционки. MFC ничего естественно не ставит.
На счет дублирования кода - к Microsoft-у. Обычно всякие независимые хакеры-исследователи утверждают, что так оно и есть - ANSI-версии перевызывают Unicode-версии. Но я думаю не всегда, возможно иногда код легде дублировать. А как оно на самом деле - знает только Билли...
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / MFC - MSVC 6.0; реально ли собрать проект с включенным _UNICODE? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]