170 похожих чатов

Подскажите плиз, как правильно реализовать концепцию обработки ошибок во фреймворке

по примеру GetLastError в windows? Через синглтон сделав его потокобезопасным?

29 ответов

20 просмотров

Если это не коммерческий проект, а именно фан проект, то в чем именно фан писать на древнем борланде, если не секрет? В плюсах от борланда старее 5.02 на стеке переменная цикла for(int i=0; i!=10;++i){} int i; перекрывает следующую за ней и вызывает ошибку компиляции, шаблоны там тоже номинальные,... зачем на этом писать? Ну или в чем фан не юзать плюсы начиная хотябы x03 или x11 (которые до сих пор в ходу в некоторых компаниях)?

Евгений-Зощук Автор вопроса
️️ ॐ
Если это не коммерческий проект, а именно фан прое...

Весь смысл в обеспечении совместимости и нативной компиляции по старыми ОС. На текущий момент проект собирается из одной кодобазы под Windows 95 и выше, linux debian 3 и выше и под MS-DOS с VGA режимом. В этом и смысл. Создать фремворк с единым API под разные ОС. Я пишу под MSVC 2022, а для теста собираю под разными операционками и разными компиляторами как 32 так и 64 битными. Такой вот фан open source проект.

А есть ссыль на упомянутый опен сорс? (В био не репа а акк)

Евгений-Зощук Автор вопроса
️️ ॐ
А есть ссыль на упомянутый опен сорс? (В био не р...

Статья https://habr.com/ru/articles/700668/ Гит проекта https://github.com/JordanCpp/Lib-LDL Текущая итерация https://github.com/JordanCpp/LDL_Lib

Ну если там настолько фан что только статический полиморфизм.... кстати а почему? Если б были колбэки то проблема обработки исключительных ситуаций "в шляпе"... не так ли?

Евгений-Зощук Автор вопроса
️️ ॐ
Ну если там настолько фан что только статический п...

Статья немного устарела. Сейчас полная динамика через абстрактные классы с возможностью динамического выбора рендера. Через колбеки? Надо подумать, мне это в голову не приходило:)

Евгений Зощук
Статья немного устарела. Сейчас полная динамика че...

atexit существует в стандартной библиотеке с c89 и доступна с gcc 2.0 емнип

Евгений-Зощук Автор вопроса
️️ ॐ
atexit существует в стандартной библиотеке с c89 и...

Мало писал на чистом С. Погуглю, не помню, что бы я юзал данную штуку. Почитав, понял, что специфичная штука. Больше нет, чем да.

Евгений Зощук
Мало писал на чистом С. Погуглю, не помню, что бы ...

Вот и ладушки На всякий случай: сегодня atexit топик - не редкость на junior/middle скрининге по Си/Си++. "How to use/setup atexit in purpose of custom error handling?" как то так https://onlinegdb.com/usysPo07FR #supapro топик... #non pro

Евгений-Зощук Автор вопроса
️️ ॐ
Вот и ладушки На всякий случай: сегодня atexit то...

Я шарпист:) Проф карьеру в С++, завершил, лет 6 назад. Но буду иметь ввиду. Не могу представить, что кто то будет спрашивать на С++ собесе об atexit и с лукавством смотреть, на кандидата. Явно позиция на поддержку убер легаси проекта:)

Евгений Зощук
Я шарпист:) Проф карьеру в С++, завершил, лет 6 на...

В системном программировании это прям если не basics, то advanced basics. И разговор туда без всякого лукавства ожидаемо приходит как раз после вопроса о том как вообще работают исключения. Ну или что вообще есть в коде до или после main()

Евгений-Зощук Автор вопроса
️️ ॐ
В системном программировании это прям если не basi...

Я не спорю, сам люблю низкоуровневые штуки. Про исключения смотрел часовые доклады на С++ group (наверное я ещё не совсем понимаю, как они работают:)), вершина это часовой доклад об инициализации const.

Евгений Зощук
Статья https://habr.com/ru/articles/700668/ Гит п...

Кроссплатформенность – обеспечение работы как на старых так и на новых системах. Это и все версии Windows 95, 98, Me. А так же поддержка старых систем Linux начиная с 2000-го года. В будущем планирую обеспечить поддержку Dos, Ну то есть - Фетиш :))

Евгений-Зощук Автор вопроса
Andrey Electron
Кроссплатформенность – обеспечение работы как на с...

Ну то есть да, но не совсем. Мне нравится нативно разрабатывать на старом железе, сразу видны проблемы производительности. На i5 11400 все слишком летает.

Евгений Зощук
Ну то есть да, но не совсем. Мне нравится нативно ...

Да чтож Вы такого к примеру на С++11 можете написать, что это сделает Ваш код настолько заметно менее производительным по сравнению с С++98 ??

Евгений-Зощук Автор вопроса
Andrey Electron
Да чтож Вы такого к примеру на С++11 можете написа...

Это здесь не при чём, С++ 98 обхват систем больше.

Евгений Зощук
Это здесь не при чём, С++ 98 обхват систем больше.

Как же не причем ? Вы же сами написали " Мне нравится нативно разрабатывать на старом железе, сразу видны проблемы производительности. На i5 11400 все слишком летает."

Евгений-Зощук Автор вопроса
Andrey Electron
Как же не причем ? Вы же сами написали " Мне нрави...

Именно, нативно на windows 95 я С++ 11 код не соберу.

Евгений Зощук
Именно, нативно на windows 95 я С++ 11 код не собе...

Ну так я про то и пишу. Что это чистый фетиш. КТо реально сейчас использует Window95 ?

Евгений-Зощук Автор вопроса
Andrey Electron
Ну так я про то и пишу. Что это чистый фетиш. КТо ...

Есть энтузиасты, в основном для старых игр. Понятно, что это очень узкая ниша. Поэтому фреймворк работает и на новых системах. При чём здесь фетиш, это лишь возможность сборки на старых и под старые системы в том числе. Просто особенность. Не воспринимайте это так близко к сердцу. С++ 20 наше всё.

Евгений Зощук
Есть энтузиасты, в основном для старых игр. Понятн...

Это затрачиваемое время для 0.0001% людей. Это Вам приносит Реальный доход ?

Евгений-Зощук Автор вопроса
Евгений-Зощук Автор вопроса
Andrey Electron
Я про это и пишу :)

Не так уж и много нужно кода, что бы опеспечить поддержку настолько старых систем. Строк 10 для Windows 95, для OpenGl 1 1000 строк, OpenGl3 800 строк, остальное шейдеры.

Евгений Зощук
Не так уж и много нужно кода, что бы опеспечить по...

А что конкретно поддержать?) условного аналога фьютекса на вин95 нет

Евгений-Зощук Автор вопроса

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта