Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
222 / 19 / 0
Регистрация: 15.08.2016
Сообщений: 47

Проблема с кодировками строк в Digital Mars и Open Watcom v2 Fork

06.03.2025, 22:23. Показов 2253. Ответов 5

Студворк — интернет-сервис помощи студентам
Приветствую всех. Возник такой вопрос.

Имеется маленький демонстрационный проект Win32 GUI, который всего навсего выводит одну строку через MessageBox. Строка для вывода получается из 2-х частей: первая - из тела самой программы, а вторая - из ресурсов. Чтобы проверить, что и там и там кодировка нормальная.

Запуск сборки в Windows XP SP3 x86 [rus].
Все компиляторы под хостовую ОС Win32.
Проблема возникла с двумя компиляторами (с другими решено).

Выводы такие:

Digital Mars 8.57
1. компилятор ресурсов некорректно преобразует строки из файла ресурсов .rc в .res
2. ANSI-версия: компилятор корректно преобразует строки из файла исходника (не трогает)
3. Unicode-версия: компилятор некорректно преобразует строки из файла исходника
эксперименты с #pragma setlocale - ни на что не повлияло

Open Watcom v2 Fork (2025 jan)
1. компилятор ресурсов корректно преобразует строки из файла ресурсов .rc в .res
2. ANSI-версия: компилятор корректно преобразует строки из файла исходника (не трогает)
3. Unicode-версия: компилятор некорректно преобразует строки из файла исходника
эксперименты с #pragma setlocale - ни на что не повлияло

На днях узнал про #pragma setlocale("?????")
(https://learn.microsoft.com/ru... w=msvc-170)
примерно понял зачем оно надо - как раз компилятор (только тот, который эту прагму понимает) должен использовать при преобразовании строк ANSI->Unicode, пробовал по-всякому, результата никакого.

.exe правильный получается только у Open Watcom v2 для ANSI. 3 прочих варианта .exe некорректные. С Open Watcom вообще странно, т.к. компилятор ресурсов (wrc.exe) все делает правильно и кодировка получается какая должна, что мешает тоже самое сделать с кодировкой в wcc386.exe? Пробовал на всякий случай исходник делать в UTF-8, но явно не то, вижу, что скорее всего компиляторы понимают мой исходник как 1250/1252 или что-то подобное.

Может ли кто-нибудь подсказать, в чем может быть дело и возможно ли решить проблему? Да, вопрос не в том, как это скомпилировать. У меня есть другие компиляторы (много разных), хотелось бы, чтобы именно с этими получилось (если вообще возможно).

Спасибо всем, кто откликнется.
Вложения
Тип файла: zip Project.zip (18.9 Кб, 12 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.03.2025, 22:23
Ответы с готовыми решениями:

Open Watcom размер исполняемого файла
Как заставить ватком генерировать минимально возможный .com and .exe файл? Как ни пытался меньше 7.5 кб не выходит. вот код: #include...

Как создать новый проект в Open Watcom Fortran77?
Если можно, действие за действием. Спасибо

Open Watcom нет перегрузки для оператора ввода для типа std::string
Решил использовать компилятор Open Watcom C++ и в результате не компилируется проект. Проект прилагается

5
Злостный нарушитель
 Аватар для Verevkin
10860 / 5805 / 1282
Регистрация: 12.03.2015
Сообщений: 26,811
06.03.2025, 22:39
Проект смотреть не буду (хочу спать), но советую забыть про ANSI и прочие однобайтные кодировки. НАВСЕГДА. И юзать везде юникод.
0
06.03.2025, 22:49  [ТС]

Не по теме:

Verevkin, Друг, в чём был смысл вашего сообщения? Ваше сообщение каким образом отвечает на мой вопрос? Лишь бы что-то написать?

0
Злостный нарушитель
 Аватар для Verevkin
10860 / 5805 / 1282
Регистрация: 12.03.2015
Сообщений: 26,811
07.03.2025, 08:32
Цитата Сообщение от XRS Посмотреть сообщение
в чём был смысл вашего сообщения?
Чтобы напомнить тебе, что щас 2025 год и юникод в каждом утюге.
Зачем городить сложности, когда можно не городить сложности?
C
1
2
3
4
5
6
7
8
9
10
11
12
// да, так можно, не не нужно, 
// т.к. даже WinXP полностью поддерживает UNICODE
 
   #if  defined(_UNICODE)
      _T("Unicode-версия.")
   #else
      #if  defined(_MBCS)
         _T("ANSI/MBCS-версия.")  // multibyte (MBCS) ASCII
      #else
         _T("ANSI/SBCS-версия.")  // single-byte (SBCS) ASCII
      #endif
   #endif // _UNICODE
Цитата Сообщение от XRS Посмотреть сообщение
Ваше сообщение каким образом отвечает на мой вопрос? Лишь бы что-то написать?
Не нравится - не обращай внимания (можешь занести меня с ЧС и не видеть, что я пишу). Воспользуйся советами других пользователей форума - вон их сколько тебе посты понаписали.
1
222 / 19 / 0
Регистрация: 15.08.2016
Сообщений: 47
07.03.2025, 08:50  [ТС]
Цитата Сообщение от Verevkin Посмотреть сообщение
Чтобы напомнить тебе, что щас 2025
Культура общения зашкаливает.

Специально для вас: мне НУЖНО, чтобы было _И_ Unicode-приложение. Компилятор его некорректно создает. Вы читать написанное не умеете.
0
Злостный нарушитель
 Аватар для Verevkin
10860 / 5805 / 1282
Регистрация: 12.03.2015
Сообщений: 26,811
07.03.2025, 08:56
Цитата Сообщение от XRS Посмотреть сообщение
Культура общения зашкаливает.
Цитата Сообщение от XRS Посмотреть сообщение
Вы читать написанное не умеете.
Жди. Щас тебе помогут.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2025, 08:56
Помогаю со студенческими работами здесь

Частичная проблема собственных значений (Watcom Fortran77)
Полное задание в файле, даже есть блок схема. Большое спасибо заранее

Проблема с кодировками..
Есть страничка с русским контентом. Пока она открыта в VB.Net все,что по русски отображается корректно. Загружаю на сайт все в порядке....

Проблема с кодировками
Установил Nuked Klan на сервер, и взялся его переводить (движок французский). Большинство модулей перевел: новости ссылки, загрузки и т.п....

Проблема с кодировками
Нигде не нашел ответа, у меня почему-то происходит сдвиг на 17 символов по кодировке windows1251, clion

Проблема с кодировками!
Товарищи Ситуация такая: ASP + Access. Локальная машина русская (выставлены российские даты, языки и т.д.). Удаленная машина (на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru