|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.05.2019, 10:42 | #1 |
Пользователь
Регистрация: 30.04.2019
Сообщений: 44
|
Может ли измениться номер ошибки?
Добрый день! Может ли измениться номер ошибки?
Например, сейчас под номером 53 ошибка "ERROR_BAD_NETPATH". Может ли в будущем под номером 53 быть другая ошибка? Или это исключено? API-функции сделаны специально для C++ и в самом C++ может быть номера ошибок не используются, а используются имена ошибок (например "ERROR_BAD_NETPATH") и такого сбоя не будет. А как быть в других языках программирования, где используются только номера ошибок? |
01.05.2019, 11:14 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
Чисто теоретически законов природы, которые могут этому помешать нет, но, в Винде все очень сильно заточено на обратную совместимость, так что можете не беспокоиться на этот счет.
Нет, API это API и язык здесь ни причем. В языке С++ нет "имен" ошибок. ERROR_BAD_NETPATH - это константа, чтоб заклавиатурному устройству было легче. |
01.05.2019, 11:21 | #3 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну смотря в каком будущем, когда-то может и это вин32апи перестанет существовать в новых версиях ОС )
С. Цитата:
Будет если не пересобрать программу, и тогда она не будет работать в старых версиях.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
01.05.2019, 12:06 | #4 | |
Пользователь
Регистрация: 30.04.2019
Сообщений: 44
|
Цитата:
А если я пишу программу не на C++, у меня то же число и останется. |
|
01.05.2019, 12:11 | #5 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Я же говорю, число не в рантайме берется. Они сломают все существующие программы (бинарники) если так сделают, разработчикам надо будет пересобирать программы и иметь отдельные сборки под старые и новые версии.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
01.05.2019, 12:13 | #6 |
Пользователь
Регистрация: 30.04.2019
Сообщений: 44
|
Всё, понял, значит точно номера ошибок не изменятся, т.к. тогда перестанут работать все существующие программы.
|
01.05.2019, 12:23 | #7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
Бред.
Во первых, даже если пишете на С++ никто не заставляет вас использовать константу - пишите себе 53 в коде на здоровье. Во вторых, понятие "константа" есть в любом маломальски нормальном языке, вплоть до ассемблера, так что если следовать вашей логике, проблема потенциального изменения константы есть во всех языках. |
03.05.2019, 12:41 | #8 | |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
Бред. ERROR_BAD_NETPATH – это макрос. В отличие от констант, у него нет ни типа, ни адреса, он просто подставляется по значению на этапе компиляции.
Цитата:
А разве они этого не добиваются? Но будет доказательство их вины в глюках, а вот этого они действительно боятся до такой степени, что даже ошибки таскают за собой, если эти ошибки кто-то успел учесть в своих приладах, из-за чего те стали падать без этих ошибок. Последний раз редактировалось Alex11223; 03.05.2019 в 14:07. |
|
03.05.2019, 14:06 | #9 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
ну из-за номеров пары ошибок может ничего сильно страшного не случится, но в целом винда жива во многом благодаря совместимости с чисто виндовым ПО, без нее многие на линуксы и т.п. уйдут.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
03.05.2019, 14:35 | #10 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
Много чего. Навскидку:
1. На нём не экономят даже при разработке под сигнальные процессоры. Не известно, на сколько ТС озабочен памятью, константу он может и отвернуть. 2. На него нельзя взять ни ссылку, ни указатель, в том числе, для передачи функциям. Не известно, как и куда ТС захочет передать номер ошибки для сравнения с фактическим номером. Если он захочет передавать по ссылке, то ему придётся завести специальную переменную и присвоить ей макрос. 3. Макрос можно использовать в операторе case. А константу – нельзя. На этом основании ТС может константу отвергнуть. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Windows XP код ошибки номер 4 | Dirol007 | Windows | 3 | 20.09.2018 15:21 |
вроде бы все верно, но мелодия почему то не играет, ошибки не выдает, что может быть не так? | vasypu | C# (си шарп) | 3 | 02.09.2018 11:40 |
Написать функции, изменяющие значение определенного разряда восьмибитного числа на 1 и на 0 (остальные разряды измениться не должны). Номер разряда передается в качестве аргумента. | Nadia M | Помощь студентам | 5 | 15.04.2018 11:40 |
Кто может исправить ошибки в скрипте? Взамен вам же и останется этот скрипт. | lkivaka | PHP | 3 | 28.10.2017 23:09 |
Програма не может найти тип данных, ошибки | Ladanua | C# (си шарп) | 11 | 18.06.2011 23:40 |