|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||||||
Изучение основ FreeBasic в сравнении с PowerBasic10.10.2022, 22:17. Показов 24803. Ответов 218
Метки freebasic;изучение основ (Все метки)
Всем добра и мира!
К сожалению, PowerBasic прекратил своё развитие вследствие смерти его создателя и главного (а скорее всего, единственного) разработчика Роберта Зейла в 2012-ом году. К настоящему времени последние надежды на его развитие окончательно угасли. В связи с этим я решил приступить к изучению основ FreeBasic'а. В этой ветке форума буду задавать вопросы, возникающие у меня в процессе ознакомления с этим ЯП. Как говорится, всё познаётся в сравнении. Ну вот и буду изучать FreeBasic, опираясь на определённый опыт ЛЮБИТЕЛЬСКОГО программирования на PowerBasic'е. Буду очень благодарен за любую помощь. Итак, первый возникший у меня вопрос. Каким образом в структурах FreeBasic'а появилась возможность использовать динамические строки? В PowerBasic'е это строго запрещено. Можно использовать только строки фиксированной длины. Вот 2 работающих (с одним и тем же результатом на консоли) кода для сравнения: FreeBasic
1
|
|||||||||||
| 10.10.2022, 22:17 | |
|
Ответы с готовыми решениями:
218
|
|
COM‐пропагандист
|
||
| 12.12.2022, 22:07 | ||
|
Эти функции просто псевдонимы для функций Автоматизации.
0
|
||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||||
| 13.12.2022, 14:54 [ТС] | |||||||||
![]() Давайте всё-таки попробую развернуть этот ответ немного пошире: "Да, действительно проигрывает, но незначительно". Так будет правильно? Кстати, проигрыш в скорости (пусть даже незначительный) и стал причиной, почему я никогда не использовал SAFEARRAY в своих программах, всегда обходясь обычными массивами. Откуда я узнал об этом недостатке? Из справки PowerBasic'а:
![]() Никакая это не надстройка, никакие это не псевдонимы, это ВСТРОЕННЫЙ в компилятор PowerBasic'а класс PowerArray с интерфейсом IPowerArray. Ну вот смотрите, прямо сейчас набросал простенькую программку (не используя никаких внешних библиотек!). И кстати, это мой первый в жизни опыт работы с SAFEARRAY ![]() PowerBasic
0
|
|||||||||
|
COM‐пропагандист
|
||
| 13.12.2022, 16:08 | ||
|
И вот доказательства. Давайте откроем таблицу импорта вашего екзешника: ПКМ на файле → 7-zip → Открыть архив → Открываем файл .link. Что мы там видим: ссылка на библиотеку автоматизации OLEAUT32.DLL (отмечена красным); функции SafeArrayAllocData SafeArrayAllocDescriptor SafeArrayCopy SafeArrayCreate SafeArrayDestroy SafeArrayDestroyDescriptor SafeArrayPtrOfIndex SafeArrayRedim для работы с SAFEARRAY (отмечены синим). Так что функции эти никакие не «встроенные в компилятор функции», обычные алиасы для функций из библиотек.
1
|
||
|
COM‐пропагандист
|
|
| 13.12.2022, 16:08 | |
|
0
|
|
|
|
||
| 13.12.2022, 16:42 | ||
|
1
|
||
|
COM‐пропагандист
|
|||||||
| 13.12.2022, 17:08 | |||||||
0
|
|||||||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||
| 13.12.2022, 19:14 [ТС] | |||||
|
Это же настоящий бейсик. Начинающий программист может вообще не знать о существовании SafeArray и Winapi функциях, необходимых для манипуляций с ним. Всю необходимую работу делает за него компилятор "за кулисами". Программист тупо создаёт экземпляр встроенного класса PowerArray и использует функции его интерфейса. ![]()
0
|
|||||
|
COM‐пропагандист
|
||||
| 13.12.2022, 20:17 | ||||
|
Изучение документации компилятора и документации не компилятора имеют одинаковую сложность. Я правильно понимаю, что вас просто пугает слово «внешний» или документация, расположенная не в каталоге с компилятором?
0
|
||||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||
| 13.12.2022, 21:29 [ТС] | ||
|
0
|
||
|
Модератор
|
||
| 13.12.2022, 22:59 | ||
|
1
|
||
|
COM‐пропагандист
|
||
| 14.12.2022, 08:08 | ||
|
А сам по себе SAFEARRAY недоступен из других процессов. Это как утверждать, что строки медленные только потому что их можно отправить по сети.
0
|
||
|
Модератор
|
||
| 14.12.2022, 09:27 | ||
|
0
|
||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|
| 14.12.2022, 13:44 [ТС] | |
|
0
|
|
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|
| 17.12.2022, 17:35 [ТС] | |
|
Подскажите, пожалуйста, при чём здесь вообще какой-то указатель?
Передаём по ссылке переменную типа LARGE_INTEGER, ну и получаем в эту переменную соответствующее значение. На моём компьютере это 1000000. Ну а пойнтер-то зачем здесь нужен?!
0
|
|
|
COM‐пропагандист
|
||
| 17.12.2022, 19:31 | ||
|
Добавлено через 2 минуты Откуда вы вообще взяли фразу «по ссылке»? На сайте корпорации Микрософт в документации по этой функции нету типа данных «ссылка», там написано «указатель».
0
|
||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||||||
| 18.12.2022, 14:41 [ТС] | |||||||||||
|
"Шапка":
В нашем случае мы передаём и получаем обратно простое целое 64-битное число безо всяких структур.
Передача по ссылке это же и есть передача адреса, в котором хранится значение переменной. Ну то есть, по сути, это и есть указатель. Пожалуй, это даже больше вопрос к The trick'у чем к вам, поскольку я пока ещё не особо знаком с тонкостями передачи параметров в FreeBasic'е, но точно знаю, что в Визуальном бейсике параметры передаются именно такими способами, которые я описал выше.
0
|
|||||||||||
|
Модератор
|
|
| 18.12.2022, 15:04 | |
|
1
|
|
| 18.12.2022, 15:04 | |
|
Лабораторная работа на изучение основ работы с debug.exe Лабораторная работа(Изучение основ.Одномерный и двумерный массивы.Процессы) Проблема с Imagelist в PowerBasic 10 FreeBASIC Уйти с freebasic Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|