Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > Вывод символа из шрифта. |
Автор: Leopard567 15.5.2006, 22:31 | ||
Необходимо вывести из шрифта определённый символ. Шрифт: Times New Roman код символа: 221Е Делаю так:
И вместо знака бесконечности выводится квадратик. Что я делаю не так? |
Автор: Pulse69 16.5.2006, 00:15 |
Я ,конечно, могу чего-нибудь не понимать, но unsigned char - это ANSI-кодировка, а символ бесконечности - скорее всего из UNICODE. |
Автор: Earnest 16.5.2006, 07:41 |
Pulse69 прав. Ты пытаешься 2-байтовый символ засунуть в char. Вообще не уверена, что тебе удастся вывести UNICODE-строку в не-UNICODE окно. |
Автор: Leopard567 16.5.2006, 16:11 |
Значит этот символ невозможно вывести в MFC приложении? |
Автор: Earnest 16.5.2006, 17:54 |
Почему же? Во-первых, нет проблем, если приложение будет UNICODE. Если нет, попробуй конвертировать его в MultiByte: WideCharToMultiByte. |
Автор: Leopard567 16.5.2006, 18:39 |
А как сделать приложение UNICODE ? |
Автор: Earnest 16.5.2006, 19:09 |
1) Поставить опцию в свойствах проекта. В 7й студии это General->Character Set = Use Unicode Character Set 2) Использовать всюду "широкие" строки и символы, т.е. не "abcd", а "abcd"L. Еще лучше сразу приучиться всегда пользоваться T-макросами: TCHAR, LPTSTR, T("abcd"), _tcslen, etc. Тогда приложение будет компилироваться как в UNICODE, так и в MultiByte... |
Автор: Leopard567 16.5.2006, 22:37 |
Переделать всё приложение у меня не получилось. Я перерисовал шрифт, вроде всё нормально. Спасибо! ![]() |