|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|
Быстрый старт в изучении C++ для относительно опытных программистов Basic18.04.2020, 16:11. Показов 15053. Ответов 253
Метки basic, c++, c++ для начинающих, com для начинающих, power basic, powerbasic, vb, vb winapi com, vb_winapi_com, visual basic, winapi_com_с++, winapi_com_c++, winapi_для_начинающих, winapi_и_com, азбука com, азбука winapi, заметки недопрограммиста, различие c++ и vb, сходство c++ и vb (Все метки)
В этой ветке предлагаю обсуждать сходства и различия между C++ и Visual Basic.
Ну хотя бы для упрощения процесса изучения параллельного (дополнительного) языка для тех, кто уже относительно неплохо знаком с Visual Basic. Ну просто как-то "не вкусно" начинать изучение совсем уж с нуля, когда, в принципе, уже и без того много знаешь (циклы, ветвления, указатели, видимость переменных ... ). На самом деле, начал сейчас просмортр на ютубе курса по C++. Дядька очень толково и понятно всё объясняет, явно есть у него талант хорошего преподавателя. Самые первые отличия, которые бросились в глаза, это: - комменты обозначают двумя косыми чертами вместо апострофа, - в конце каждой строки точка с запятой, - все процедуры, функции, "тела" циклов ... в фигурных скобках, - вложенные циклы можно описывать одной строкой, - если переменная объявлена, но ей не присвоено значение, то она содержит случайный "мусор" из памяти, а не как у нас в бейсике, где сразу получает значение ноль или пустую строку, - массивы с квадратными скобками вместо круглых, - область видимости переменных ограничена фигурными скобками и причём неважно функция это, цикл или "тело" функции IF, а не как у нас область видимости переменных ограничена только функциями и процедурами. Ветка открытая, пишите кто хочет. Особенно приветствуются советы опытных специалистов, уже овладевших несколькими языками. Ну уж им-то гораздо виднее, в чём сходство и различие разных языков. Сказать по правде, лично мне сейчас C++ и его младший брат нужны, главным образом, для удобства изучения материалов MSDN.
0
|
|
| 18.04.2020, 16:11 | |
|
Ответы с готовыми решениями:
253
предложение для опытных программистов Быстрый старт и софт для Modicon TM251MESE (Schneider Electric) Книги или справочники для опытных(или проффесиональных) программистов! |
|
Модератор
|
|||
| 28.04.2020, 14:16 | |||
![]() Pro_grammer, скинь пожалуйста карту в личку.
0
|
|||
|
Кормпилятор
|
||
| 28.04.2020, 14:26 | ||
|
в этом редакторе. Это как крестовой отвёрткой пытаться закрутить винт для плоской отвёртки. Зачем? Упадёт прога или выдаст "неверная карта" в данном контексте не имеет вообще никакой разницы.
0
|
||
|
Модератор
|
|||||||||||
| 28.04.2020, 14:52 | |||||||||||
|
Добавлено через 8 минут Я ни в коем случае не говорю о навыках и т.п. я и сам такие баги допускаю, просто смотри на это через призму безопасного программирования о котором я говорю здесь.
0
|
|||||||||||
|
Кормпилятор
|
||
| 28.04.2020, 15:02 | ||
как и крестовая отвертка не обязана закручивать болты для плоской. Эту проверку не так сложно добавить, в ней абсолютно ноль смысла для конечного пользователя, редактор для одного единственного формата, пользователь кидая в редактор кривой файл всё равно ничего не получит. Это не отловленный баг, это придирка на ровном месте, и без того ясно что редактор не откроет другие файлы. Загрузи нормальную карту и тогда уже ищи баг.
0
|
||
|
Модератор
|
|
| 28.04.2020, 15:11 | |
|
Quiet Snow, закинь неправильный файл в любое нормальное приложение, получишь предупреждение о неверном формате. Странно что мне приходится говорить о таких очевидных вещах. Можешь не считать это багом - дело твое. Я, как и большинство программистов, считаю что падение приложения, тем более зависящее от входных данных, и есть баг.
0
|
|
|
|
|||||||||||||
| 28.04.2020, 15:26 | |||||||||||||
|
Данные записываются изначально за пределами буфера. Но даже когда я вас попросил это сделать вы не привели. The trick, если так хотите тестировать приложения, можете это потестить. MultiHash - программа вычисляющая хеши файлов Код небольшой, около 600 строк, но зато присутствуют такие "вкусности" как работа с памятью, многопоточность и т. д.
0
|
|||||||||||||
|
Кормпилятор
|
||
| 28.04.2020, 16:00 | ||
|
Файл всё равно открывается только один раз, после идёт выход из редактора. Потери данных никакой нет. А пока нормальный файл не дашь - дальше хода не будет(как и в любой проге).
0
|
||
|
Модератор
|
|||||||||||||||||||||||||||||||||
| 28.04.2020, 16:46 | |||||||||||||||||||||||||||||||||
|
Ты мне сказал привести, я привел. Ты о чем? Я описал как следует придерживаться концепции - оборачивать логику в объект и работать с ним. Ну если тебе прямо "разжевать" нужно то вот к примеру 2 ситуации как они решаются в C и как их можно решить безопасно в VB6: Безопасный указатель на тип данных:
0
|
|||||||||||||||||||||||||||||||||
|
|
||
| 28.04.2020, 18:30 | ||
|
А ты, как разработчик, зная, что это не так не позаботился о том, чтобы предупредить меня нужным сообщением, что я не прав, и позволил мне уронить программу. Понятно, что вреда нет ни какого, но впечатление теряется, как в том старом еврейском анекдоте. Вот теперь сам подумай, кого бы ты, будучи простым юзером этой программы стал бы считать виновным за то, что программа упала? Ведь входной фильтр файл пропустил, и игра Дюна и файл карта, в чем вина юзера? Без обид, но ситуация даже не патовая, а матовая, особенно на фоне заявлений о тщательном и всестороннем тестировании. А если файл был бы от нужной версии, но просто испорчен при перезаписи или ещё каким зловредом? Думаю финал был бы тот же. Нет контроля правильности файла и контроля версии. Это обычно проверяется в первую очередь в серьёзных программах.
0
|
||
|
|
|||||||||||||
| 28.04.2020, 19:31 | |||||||||||||
|
Вот к примеру https://www.cyberforum.ru/blog... g5639.html Для работы с изображениями написали dll в которой полно небезопасного кода. Вот кусочек кода отсюда https://www.cyberforum.ru/blog... g3511.html
Что будет если в lpData окажется кривой указатель и/или в szData неправильный размер. Замечу нет элементарной проверки lpData на 0. Поэтому не нужно писать что весь код на VB безопасен.
0
|
|||||||||||||
|
Модератор
|
|||||||||||
| 28.04.2020, 20:58 | |||||||||||
|
0
|
|||||||||||
|
|
||||||
| 28.04.2020, 21:10 | ||||||
|
Но так ли это? Или что под этим подразумевали? Если бы любую задачу можно было решить безопасным кодом, не применяли бы сплошь и рядом WinAPI в VB.
0
|
||||||
|
Модератор
|
||||||
| 28.04.2020, 21:34 | ||||||
|
Смысл указателя в том чтобы на что-то указывать. Ты мне говоришь что указатель указывает на память, о чем я говорю что это небезопасно, в памяти может быть что угодно и это может привести к непредсказуемому поведению. Я же говорю что указатель указывает на объект (объект в данном случае это абстракция, а не COM объект), что безопасно, мы всегда знаем на что он указывает, его нельзя неверно установить и получить undefined behavior. Попробуй подумать немного об этом и понять логику, тогда возможно ты поймешь что я имею в виду. Я не говорю о опытном программисте который не допустит того чтобы в памяти лежало что попало, о том что он проконтролирует границы буферов и т.п. Я говорю о концепции, когда в принципе таких ситуаций быть не может и любую задачу можно решить так.
0
|
||||||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||||||||||||
| 28.04.2020, 21:43 [ТС] | ||||||||||||
|
Безопасны указатели или нет, изучать-то их всё равно волей-неволей приходится, потому что в очень многих функциях WINAPI и COM указатели фигурируют. Ну вот хотя бы самая "ходовая" функция SAPI 5.4 (на скриншоте).
Здесь, как я понимаю, просят передать этот параметр в виде указателя на строку, заканчивающуюся нулевым байтом. А если я просто строковую переменную туда передам (по ссылке) вместо указателя? Это будет равносильно передаче указателя по значению? Вроде бы я так всегда и поступал, и "оно" обычно работало ![]() Очень часто передавал обычную динамическую строку (безо всяких завершающих нулей). И тоже вроде бы работало. Или это как лотерея, - если дальше там где-то в памяти встретятся нули, то дотуда и будет считана эта строка? А почему мне обычно хочется именно динамической строкой передавать, так это потому что не надо заморачиваться с объявлением размера этой строки.
0
|
||||||||||||
|
|
||||
| 28.04.2020, 21:50 | ||||
|
Если вы пишите что одно можно использовать вместо другого, значит они как минимум аналоги. Приводите код того что имеете в виду чтобы не было недопонимания.
0
|
||||
|
Модератор
|
||||||
| 28.04.2020, 21:53 | ||||||
|
1
|
||||||
|
Кормпилятор
|
|||
| 28.04.2020, 22:09 | |||
|
Вы прогу ещё даже не увидели, а уже сделали вывод о багах. Да ни один мод-мейкер никода в жизни не будет кормить её другими файлами. Это всё равно что купить обычный пылесос, засосать им бензин, он взорвётся и на фоне этого сделать вывод о некачественной конструкции пылесоса.))) Мол почему не предусмотрели... Так а никто и не думал что им кто-то будет бензин засасывать, а могут ещё мазут или клей. Но зачем? Добавлено через 11 минут Они к друг другу не имеют никакого отношения ни визуально, ни технически. Там есть скрин и в заголовке указано для какой конкретно дюны. Перепутать в общем-то сложно, их всего было 3 штуки(dune 2 [sega\pc], dune 2000[ps1, pc] и emperor[pc]) и визуально они крайне сильно отличаются.
0
|
|||
|
Модератор
|
|||||||||||
| 28.04.2020, 22:14 | |||||||||||
0
|
|||||||||||
|
|
||||
| 28.04.2020, 22:17 | ||||
|
Просто передаете указатель на строку.
0
|
||||
|
|
||
| 28.04.2020, 22:21 | ||
|
Это как купил бы я архиватор RAR, гружу в него битый архив, а он раз и упал, вместо того, что бы сообщить, что архив битый. Или Фотошоп, упал бы вместо того, что бы сообщить, что файл испорчен или не поддерживается. А авторы меня бы лечили, что нормальный юзер ни когда испорченный файл в редактор не загрузит
0
|
||
| 28.04.2020, 22:21 | |
|
набор опытных C++ программистов Приглашаю На работу Опытных Программистов Нужен совет опытных программистов на C# Нужен совет опытных программистов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|