|
0 / 0 / 0
Регистрация: 20.07.2022
Сообщений: 44
|
|
Ищу сторонние библиотеки (third-party libraries) для FreeBASIC на Windows и DOS27.09.2024, 08:18. Показов 13074. Ответов 198
Метки нет (Все метки)
Где в Интернете можно найти полный список сторонних библиотек (third-party libraries), которые можно использовать в программах на FreeBASIC, со ссылками для их скачивания для Windows (начиная с Windows 98) и DOS? Поиск в Яндексе и Google по запросу "Download Third-Party Libraries for FreeBASIC" (без кавычек) не дает никаких результатов.
0
|
|
| 27.09.2024, 08:18 | |
|
Ответы с готовыми решениями:
198
С++ Windows Form, WinAPI и сторонние библиотеки
FreeBasic. Библиотеки |
|
|
|
| 25.10.2024, 13:05 | |
|
Думаю, первоначальный автор (Andre Victor), делал его ради самоутверждения, когда цель была достигнута, т.е. работающий компилятор, то интерес был сразу же потерян.
0
|
|
|
|
||
| 25.10.2024, 15:31 | ||
|
1
|
||
|
Кормпилятор
|
|||
| 27.10.2024, 21:46 | |||
|
И он к QB, скорее всего, никакого отношения не имел, полагаю он смутно понимает идеологию языка, хотя и много сделал для него. Помню Стас делал сборку(одну из своих первых, с кучей бинарников-библ) где всё нормально работало, там даже OpenGL подсвечивался как надо, единственное что, там была старая версия FBEdit с одним неприятным багом, который я нашёл, это всё кроме бага с русскими путями(который вообще х*р проссышь откуда взялся). Дальше там с какой-то версии, начали внедрять ООП. И всё резко обкакалось. Могу предположить что в самых первых версиях вообще не шло речи о добавлении в BASIC синтаксис, того же си, включая препроцессор и прочие штуки, это всё выглядит очень стрёмно, макросы например тот же PB умеет делать самостоятельно если почитать ASM код старых компилей, на кой чёрт они в BASIC коде. Единственное что там нормально было сделано это ASM, но учитывая уровень документации - всё считай там изучается "наощуп", пока нащупаешь уже всё желание кодить отпадёт. Одно дело для создателей библиотек. Сделали бы форк, мол пусть пишут либы, чтобы люди могли их использовать в виде бинарных статических библиотек и не видели этого говнокода, но использовались эти либы чтобы без ООП(как они там внутри работают - решительно насрать). Но так нет же. Мало того говнокод, абсолютно лично для меня неюзабельный, ибо не расплести до низов - хуже кода с GOTO, так ещё и использование декларирует применение ООП модели. И это ещё с заморочами со статикой с линуксовой(на кой хрен брать было этот формат, а не *.lib, который от версии к версии FB так же не совместим, ну потому что берёшь предыдущую версию библы где мало чего менялось, вставляешь оттуда бинарник либы и компиль тебе пишет, что оно не совместимо в прямом смысле) т.е. настолько тупой линкер, который вообще ничего прилинковать не может. Крайне странные решения, не устроило их видите ли что нельзя напрямую с си тырить библы, ну так и сейчас нельзя, конвертеры хедеров кривые, на хедеры вообще без слёз не взглянешь, одни "указатели на указатели", от версии к версии совместимость пропадает с тех же 0.22 взять либы - наверное ни одна не заработает, даже с 1.00-1.05 уже проблемно что-то брать. Например, штук пять 3D движков вчера просто проверить решил, ни один на последней не завёлся, и версия компиля не подписана естессно, трахайся проверяй, подбирай ключик к замку. И тут дело не в бесплатности и не в недостаточности комьюнити(оно большое). Просто есть куча людей, которые читали википедию, но не понимают что такое бейсик и зачем он нужен, из-за этих людей все проблемы. И если бы хоть кто-нибудь из них взглянул на три бейсика: QuickBasic, BlitzBasic и PureBasic с идеологической и продуктовой(из коробки) точки зрения, то они бы начали понемногу допетривать в чём сила этого языка. Бейсик он не для того, чтобы колупаться в нутрах и епстись с ассемблером, эти опции должны быть, но не с порога, с порога надо чтобы "коврик лежал под ногами, стул чтобы сесть, диван чтобы лечь и т.п.", а не "голые стены, доски и молоток", при этом периодически приходят ревизоры и конфискуют имущество, ну так, чтобы не расслаблялся.
1
|
|||
|
Кормпилятор
|
|
| 28.10.2024, 08:06 | |
|
locm, я не тестировал как оно там работает, ни разу не интересно. Там сейчас уже
мало что работает, почти все старые работы сдохли, завести их сможет только человек, который в совершенстве владеет FB и не просто владеет, а следил за изменениями всех версий. Я этим [тут подобрать нужное слово], слава богу, в совершенстве не владею(т.к. оно уже давно сравнивается по сложности с тем же си) и сильно не следил за беклогами. На самом деле не хочется углубляться в подробности, потому что будет куча суровых русских слов в сторону разрабов, можно сказать одно: эти люди, пришедшие с другого ЯП, не будем говорить какого, люто обделались в штаны, изгадили нормальное начинание и потирая руки, спокойно разошлись. Куча работы комьюнити была слита в унитаз. Если 10 лет назад оно как-то ковыляло на одном костыле, то сейчас это инвалид без костыля и коляски, костыль сломался, а коляску разбили вандалы.
0
|
|
| 28.10.2024, 17:38 | ||
|
0
|
||
|
Кормпилятор
|
||
| 28.10.2024, 18:49 | ||
|
того, что они хотели. Думаю там очень нефиговые нюансы. VB насколько мне известно довольно спокойно подключает dll-ки, нужно только самому писать декларации. Тема всё равно протухнет, поэтому я бы тут предпочёл обсудить вообще какие-нибудь чисто прогерские насущные вопросы. Например очень бы кстати пришёлся таймер, высокоскоростной(до 1000 коллбеков в секунду), и чтобы не жрал целое ядро, у меня есть два решения. Оба на потоках(один вариант жрёт целое ядро, второй - до половины, один даёт 12 тыс коллбеков(на моём компе), второй не очень стабилен ~10-25тыс коллбеков), но я бы почитал что коллеги скажут, потому что облазил пол инета и там кукиш с маслом. Желательно что-то простое, чтобы не пришлось читать целый учебник дабы завести элементарный таймер в коллбеке. Под DOS это было сделать просто, там было аж целых 3 канала таймера, перехватывался вектор и делались грязные дела с тактовым генератором через порты. Под виндой же как понимаю есть какие-то проблемы и вопрос особо нигде не обсуждается.
0
|
||
|
Кормпилятор
|
|||||||
| 28.10.2024, 19:28 | |||||||
И в потоке - так же. Да он превосходно бережёт время ЦП, но и как разграничитель времени он - смешной. Ещё бывает, что включаешь фоном браузер и ввжжуххх этот слип, внезапно, начинает лопатить 1000 кадров. Т.е. взял, подвязался так к нему эпично, чувак открыл фоном браузер, твою прогу и вжууух - нежданчик. Когда моя уже старенькая видеокарта может делать 8000 FLIP-ов за секунду. Или встроенный в FB таймер(считывалка значения) переключается примерно 12000 раз. Так много конечно не надо, для отображения хватает обычно 60-75, максимум 120-150(для плавности картинки), а вот на обсчёт движков хотелось бы ставить от 300 кадров в зависимости от назначения движка. И не методом "а давай ка мы сольём 5 кадров в один" быстренько в цикле за 0 секунд. Может не все понимают разницу, но для движка это пролаг, он должен реально градуироваться по времени(например для минимизации задержки ввода, поскольку ввод мы обсчитываем в цикле, привязанном к какому-либо движку). Т.е. это можно делать только имея сверхточный быстрый таймер, внутри которого можно поставить "прореживалку" до необходимой частоты. Но вообще это не столь важно, я просто думал что кому-то это будет интересно поколупать. Это вроде просто технический аспект, не привязанный к какой-либо области.
0
|
|||||||
|
Модератор
|
|
| 28.10.2024, 20:00 | |
|
Quiet Snow, в винде есть мультимедийные таймеры, которые твой SLEEP и ускоряют когда ты браузер запускаешь. По сути у тебя планировщик начинает работать с большей частотой поэтому и твой поток чаще получает управление, но тут есть потеря производительности на переключение контекста.
0
|
|
|
Кормпилятор
|
||
| 28.10.2024, 21:26 | ||
|
работе планировщика(это же по сути ядро), но когда увидел в чём весь сыр бор - офигел. Штука странная, местами неприятная. Если что, второй вариант таймера - это классический код producer-consumer. В целом меня устраивает, разве что так и не понял сам механизм, но он тупо на мьютексах, в интернете таких схем не видел, там мьютексы + семафоры. Кто-то схитрожопил, может есть подводные камни, не знаю, пока не понял. Но странно, что никто не копал по теме альтернативных таймеров. Наверняка же что-то стандартизованное в винде должно быть. Не все же будут такие костыли городить. Добавлено через 1 час 2 минуты The trick, немного бегло ознакомился с "мультимедийными таймерами". Как правильнее организовать? Создать фиктивное окно в потоке, с обработчиком сообщений, создать объект ядра, оттуда посылать сообщение в окно, из окна уже делать вызов функции обратного вызова? Получится так, или что-то не догоняю?
0
|
||
|
|
||
| 28.10.2024, 21:33 | ||
Сообщение было отмечено Quiet Snow как решение
Решение
1
|
||
|
Кормпилятор
|
||||||||
| 28.10.2024, 23:51 | ||||||||
|
когда оно крякнется. Пример, собранный из кусков:
Самое забавное, функция, судя по документации, ещё с 2000-й винды, но в FB её по умолчанию так и не добавили, что сопровождает все поделки на нём этими "весёлыми эффектами" американских горок. А ведь там действительно приличная FBGfx, так-то вроде понятно что где-то в фоне ещё должно висеть окошко с OpenGL, подёргивающее иногда FLIP, чтобы видеокарта подняла частоты. И эта, собственно, функция, чтобы увеличить скорость мультимедийных таймеров. Ну и конечно каким-то чёртом надо озаботиться о том, чтобы не было вертикальной синхронизации(тут уже сложнее). Разве что работать через GFX_NULL, парни тут вроде говорили, что можно аппаратно блиттить. Короче есть куда копнуть в плане нормального обработчика. Если же в OpenGL, то вроде можно с помощью расширения выключить вертикальную синхронизацию, ну конечно если в драйвере установлено значение "авто" или "управление от приложения". Добавлено через 35 минут QBLang код в FBLang" из-за схожести синтаксиса. Потому они так и делали. Просто QB код был по сути устаревшим и его почти не поддерживали, как и FBLite. По сути диалектом FB просто заменили QB и оно уже далеко не бейсик, при том сам QB диалект весьма кастрирован. Помню смотрел, как там WinAPI вызывать, чисто для портирования, ну настолько дерьмово оно сделано если с QB диалекта надо это сделать. Просто "мехом внутрь"... Ну т.е. если 100% не знаешь - никогда не догадаешься.
0
|
||||||||
|
Кормпилятор
|
||||||||||||
| 29.10.2024, 06:21 | ||||||||||||
|
Увидел случайно в примере от Antony Gual, когда переписывал под FB.
но возможно забыл и спутал или с какой-то версии выпилили. Добавлено через 23 минуты ... короче ещё немного порылся, да можно было, но, сами понимаете насколько через жопу, доходит до маразма:
0
|
||||||||||||
|
Кормпилятор
|
||||||||
| 30.10.2024, 01:18 | ||||||||
|
А если точно не знать, что типы надо брать с FB через подчёркивание и как конкретно декларировать - то и не догадаешься вовсе. Это на самом деле не открывает никаких широких возможностей портирования как людям может показаться. Лучше всё равно переписывать на FBLite или FB.
0
|
||||||||
|
|
||
| 30.10.2024, 13:57 | ||
|
Ну и пишут наверно эти расширения, благодаря тому, что есть указатели и динамическое выделение памяти. Но зачем тратить на это свое время в basic? Графическая библа из коробки? Да, это круто. Но и в Си можно подключить любую графическую библиотеку коих воз и маленькая тележка, и будет не просто то же самое, а будет гораздо лучше и быстрее все работать. А лучше потому, что все прозрачней, хотя также до определенной степени. Вывод прост: до сих пор не создана достойная альтернатива VB, что бы было во многом как там, с своей ide, но не привязано к одной ОС, и чтобы бы было все прозрачней, чем в VB. Чтобы можно было дотянуться до потрохов, и даже кое что там менять если потребуется. Я не думаю, что путь чистой компиляции в один исполняемый файл это наиболее правильный путь, конкретно для basic. Лучше через p-код, или шитый промежуточный код, посредством виртуальной машины. Но виртуальная машина должна быть достаточно компактной и быстрой, что бы быть зашитой в exe. При этом мы избежим проблем совместимости версий. Можно будет создавать модули чисто на промежуточном языке, чтобы менять условия компиляции на более высокоуровневом ЯП, а можно добавлять в промежуточный ЯП функции на асме не перекомпилируя существующих exe, то есть обновление может происходить на ходу, причем делаться самими пользователями. Я думаю, что любая система должна иметь сквозную прозрачность сверху до низу, чтобы быть понятной и легко регулируемой.
0
|
||
| 30.10.2024, 13:57 | |
|
Нет библиотеки com.anylogic.libraries.enterprise Создание статической библиотеки в FreeBasic Сетевые библиотеки для DOS Сторонние библиотеки Сторонние библиотеки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|