|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|
Быстрый старт в изучении C++ для относительно опытных программистов Basic18.04.2020, 16:11. Показов 14868. Ответов 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# Нужен совет опытных программистов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|