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

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

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

29 ответов

28 просмотров

Если это не коммерческий проект, а именно фан проект, то в чем именно фан писать на древнем борланде, если не секрет? В плюсах от борланда старее 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 нет

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта