Змінюй хід війни! Допомагай ЗСУ!

помогите выбрать книгу по с+!

🔴 13:27 Повітряна тривога в Харків.обл.
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #21
Ловить события мыши, которая работает на все том же допотопном контроллере, что и в DOSовские времена, только с несущественными добавками - такая же актуальная задача сейчас для кодера на низком уровне, как и раньше.

:іржач: Ну разве что он пишет очередной BolgenOS или, в лучшем случае, ReactOS - если мы про PC-платформу, разумеется.

И, поверь, серьезные коммерческие проекты на C++ без низкоуровневого обращения к железу я видел.
 
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #22
Сам начинал со Стивена Прата. Вообще не понимаю, что люди в нём находят. Его книгу никому бы не рекомендовал, там больше С, чем С++.
А вот на счёт Шилдта ("Полный справочник по С++") - это вы зря. Самая приемлемая книга для быстрого старта.
Я б советовал так:
1. Читаете Шилдта.
2. Читаете Страуструпа
3. Уже поймёте, что вам нужно читать далее.

+1
 
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #25
:
И, поверь, серьезные коммерческие проекты на C++ без низкоуровневого обращения к железу я видел.

А что значит низкоуровневое обращение к железу? Ваш "серьезный коммерческий софт" использует собственные драйвера уровня ядра?

А вообще вопрос выбора книги по С++ сродни вопросу: "Что бы мне сегодня поесть на ужин, если вчера я ел макароны с котлетами?"
 
Останнє редагування:
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #26
А что значит низкоуровневое обращение к железу?

Прямое обращение к портам, собственные обработчики прерываний и т.п.

Ваш "серьезный коммерческий софт" использует собственные драйвера уровня ядра?

Эти детали я на публичном форуме обсуждать не могу, но скажу следующее. Во-первых, далеко не всегда для подключения нестандартного железа нужно ваять свой драйвер - зачастую хватает USB-COM или USB-HID. Затем, драйвер вполне может поставляться производителем самой железяки. В обоих случаях для работы с железкой хватает WinAPI, который можно юзать хоть из под .NET'а, хоть из-под Visual Basic (если на нем кто-нибудь еще пишет :) )

Разумеется, для разработки собственно драйверов потребуется знать все премудрости низкоуровневой работы с аппаратурой, но ИМХО емкость рынка разработчиков драйверов под PC-платформу в нашей стране ничтожна. Если уж "тянет" в эту сторону, то я бы посоветовал сразу учить программирование под микроконтроллеры.
 
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #27
Прямое обращение к портам, собственные обработчики прерываний и т.п.
Это возможно только на уровне ядра ;)

Эти детали я на публичном форуме обсуждать не могу, но скажу следующее. Во-первых, далеко не всегда для подключения нестандартного железа нужно ваять свой драйвер - зачастую хватает USB-COM или USB-HID. Затем, драйвер вполне может поставляться производителем самой железяки. В обоих случаях для работы с железкой хватает WinAPI, который можно юзать хоть из под .NET'а, хоть из-под Visual Basic (если на нем кто-нибудь еще пишет :) )

Что то мне подсказывает что ты путаешь низкоуровневое обращение к железу с "высокоуровневыми" драйверами работающими с конкретной спицификой протокола обмена информации с устройством ;) Ну а конфеденциальность это канешно святое и нерушимое ;)
 
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #28
lugal прав: прерывания можно обрабатывать только в Ring 0.
А к COM и USB HID можно обращаться через стандартные драйвера при помощи вызова CreateFile().
Я вот только не возьму в толк, причём здесь "низкоуровневое" обращение к железу? При чём здесь C++ Builder?

Не то, ни другое к С++ прямого отношения не имеет.
Кстати о C++ Builder. Книги по нему не стоит читать по двум причинам:
1) Конкретно С++ в них уделяется не столь уж пристальное внимание, больше всё же описана работа с библиотекой VCL и самой IDE.
2) C++ Builder хоть и классный RAD, но на нём никто не пишет новых коммерческих продуктов. Он умер как и все остальные IDE "Не от Microsoft". Просто потому, что его разработала не Microsoft.
 
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #29
lugal прав: прерывания можно обрабатывать только в Ring 0.
А к COM и USB HID можно обращаться через стандартные драйвера при помощи вызова CreateFile().

Ну вот и я ж о чем - в подавляющем большинстве случаев лезть в Ring 0 нет никакой нужды - достаточно возможностей стандартного Win API, который можно использовать практически из любого языка программирования. Какое это отношение имеет к C++ - см. ниже

Я вот только не возьму в толк, причём здесь "низкоуровневое" обращение к железу?

Ранее в этой ветке было сказано следующее:

Вопрос был о С++. Следовательно, человек будет заниматься достаточно низкоуровневым программированием.
Или ты считаешь иначе?
Так что все самые застарелые задачи будут актуальными и для этого человека.

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

С выделенными красным фразами я категорически не согласен и считаю, что именно на PC-платформе, подавляющее большинство задач на уровне ядра ОС и драйверов уже давно решены, поэтому если уж C++ и выбирается в качестве основного языка, то явно не по этой причине.

Справедливости ради, с микроконтроллерными системами ситуация тоже интересная - C и даже ассемблер используются в полный рост. А вот именно C++, насколько я знаю, эмбеддеры не очень жалуют.

Кстати о мыши. Ловить события мыши, которая работает на все том же допотопном контроллере, что и в DOSовские времена, только с несущественными добавками - такая же актуальная задача сейчас для кодера на низком уровне, как и раньше. Только системный API несколько другой.

А ничего, что PS/2 (и тем более COM) мышь сейчас еще поискать надо? ;) Это про "допотопный контроллер"...

Ну и если обработку событий мыши считать низкоуровневой задачей... то я молчу :) Hint: В Windows 10 лет назад это прекрасно можно было делать на Visual Basic 6, да и на Delphi тоже, насколько я помню.
 
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #30

Не так пнял. Щас исправимся :)

Вопрос был о С++. Следовательно, человек будет заниматься достаточно низкоуровневым программированием.
Или ты считаешь иначе?
Так что все самые застарелые задачи будут актуальными и для этого человека.

Ну, представь себе коммерческий проект с основой на С++ без низкоуровнеого кодирования!
Если ты смог это представить - значит, твоя квалификация желает быть лучшей. Как минимум.
Сударь, не стоит кидаться столь громкими словами ;) Я постоянно работаю на высокоуровневых проектах на С++ ;) Есть канешно еще эмбед, драйвера и игры, но там своя специфика да и в эмбеде для половины задач просто не существует С++ компиляторов, там рулит чистый Си ;)

Все, или почти все, кто использует своей работе С/С++.
Иначе бы они пользовали совсем другие платформы/языки.
Да, их относительно немного на фоне всех остальных кодеров, но никак не менее 15% (Штатовский рынок).
Опять таки ошибочное утверждение. Как минимум есть проекты с высоким уровнем соплатформенности и производительности (бэк офис) где сложно найти альтернативу С++ (для соплатформенных разве что Флекс и то не для всех задач)

Так что не сотит сильно умничать и пытаться казаться умнее всех ;)
 
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #31
С++ и Страуструп - это синонимы, нельзя знать С++ не прочитав Страуструпа :)
 
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #34
Если Кнут замочить в кильке с томатом,дать просохнуть,потом повторить процедуру,и так до полного окраса кнута,можно его потам использовать ,он будет показывать правильнэ напрямок в сторону,где нормальная книга лежит
 
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #35
Брат Пастух,технология чуть обогнала ваше сообщение.В лабораториях проходят испытания по использованию опустошенных консервных банок из под кильки для передачи управляющих сигналов на компьютер без клавиатуры и мыши.
Расширением такой технологии может быть прокатка банки по плоскости книжного рядка.Там где ляжет,там и брать надо.
 
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #36
А что, Страуструпа уже запретили, что Вы спрашиваете?
 
  • 🔴 13:27 Повітряна тривога в Харків.обл.
  • #37
Назад
Зверху Знизу