0 / 0 / 0
Регистрация: 20.07.2022
Сообщений: 44

Ищу сторонние библиотеки (third-party libraries) для FreeBASIC на Windows и DOS

27.09.2024, 08:18. Показов 12576. Ответов 198
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Где в Интернете можно найти полный список сторонних библиотек (third-party libraries), которые можно использовать в программах на FreeBASIC, со ссылками для их скачивания для Windows (начиная с Windows 98) и DOS? Поиск в Яндексе и Google по запросу "Download Third-Party Libraries for FreeBASIC" (без кавычек) не дает никаких результатов.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2024, 08:18
Ответы с готовыми решениями:

С++ Windows Form, WinAPI и сторонние библиотеки
Возникли следующие вопросы: 1. Можно ли в Net проекте Visual C++ напрямую использовать функции (без Pinvoike) сторонних библиотек,...

Как установить сторонние библиотеки для C# в Visual Studio 2022
Здравствуйте товарищи. У меня проблемка появилась, которую я ни как не могу решить, вообще не получается. Проблема является то, что я не...

FreeBasic. Библиотеки
Доброго времени суток. Недавно нашел полезным создать библиотеку в среде FreeBasic, но, к сожалению, нигде про них ни слова. В справке...

198
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
25.10.2024, 13:05
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от locm Посмотреть сообщение
Или причина в чем-то другом?


Думаю, первоначальный автор (Andre Victor), делал его ради самоутверждения, когда цель была достигнута, т.е. работающий компилятор, то интерес был сразу же потерян.
0
1407 / 866 / 93
Регистрация: 08.02.2017
Сообщений: 3,700
Записей в блоге: 2
25.10.2024, 13:46
Сейчас говорят rust ни как не могут завершить, программисты типа выгорают, большая сложность. Я не знаю, короче, в Ютубе про ето видел.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
25.10.2024, 15:31
Цитата Сообщение от testuser2 Посмотреть сообщение
Сейчас говорят rust ни как не могут завершить
rust это изначально были чистые понты. Он был призван заменить СИ. Но как ни относись к Си, а ему пока замены нет.
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
27.10.2024, 21:46
Цитата Сообщение от CoderHuligan Посмотреть сообщение
подхватили другие типа Петерса.
Петерс вроде не входил в состав авторов и администрации. Он просто один из приверженцев ЯП.
И он к QB, скорее всего, никакого отношения не имел, полагаю он смутно понимает идеологию языка,
хотя и много сделал для него.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Примерно с какой версии началась кардинальная ломка?
Ну я начал использовать FB где-то с версии 0.22.0, может даже чуть более ранней. Поэтому опишу свой опыт.
Помню Стас делал сборку(одну из своих первых, с кучей бинарников-библ) где всё нормально работало,
там даже OpenGL подсвечивался как надо, единственное что, там была старая версия FBEdit с одним
неприятным багом, который я нашёл, это всё кроме бага с русскими путями(который вообще х*р проссышь
откуда взялся).
Дальше там с какой-то версии, начали внедрять ООП. И всё резко обкакалось. Могу предположить что
в самых первых версиях вообще не шло речи о добавлении в BASIC синтаксис, того же си, включая
препроцессор и прочие штуки, это всё выглядит очень стрёмно, макросы например тот же PB умеет
делать самостоятельно если почитать ASM код старых компилей, на кой чёрт они в BASIC коде.
Единственное что там нормально было сделано это ASM, но учитывая уровень документации - всё считай
там изучается "наощуп", пока нащупаешь уже всё желание кодить отпадёт.

Одно дело для создателей библиотек. Сделали бы форк, мол пусть пишут либы, чтобы люди могли их
использовать в виде бинарных статических библиотек и не видели этого говнокода, но использовались
эти либы чтобы без ООП(как они там внутри работают - решительно насрать). Но так нет же.
Мало того говнокод, абсолютно лично для меня неюзабельный, ибо не расплести до низов - хуже кода с GOTO,
так ещё и использование декларирует применение ООП модели. И это ещё с заморочами со статикой
с линуксовой(на кой хрен брать было этот формат, а не *.lib, который от версии к версии FB так же не совместим,
ну потому что берёшь предыдущую версию библы где мало чего менялось, вставляешь оттуда бинарник либы
и компиль тебе пишет, что оно не совместимо в прямом смысле) т.е. настолько тупой линкер, который вообще
ничего прилинковать не может.
Крайне странные решения, не устроило их видите ли что нельзя напрямую с си тырить библы, ну так и сейчас
нельзя, конвертеры хедеров кривые, на хедеры вообще без слёз не взглянешь, одни "указатели на указатели",
от версии к версии совместимость пропадает с тех же 0.22 взять либы - наверное ни одна не заработает,
даже с 1.00-1.05 уже проблемно что-то брать. Например, штук пять 3D движков вчера просто проверить решил,
ни один на последней не завёлся, и версия компиля не подписана естессно, трахайся проверяй, подбирай
ключик к замку.
И тут дело не в бесплатности и не в недостаточности комьюнити(оно большое). Просто есть куча людей, которые
читали википедию, но не понимают что такое бейсик и зачем он нужен, из-за этих людей все проблемы.
И если бы хоть кто-нибудь из них взглянул на три бейсика: QuickBasic, BlitzBasic и PureBasic с идеологической
и продуктовой(из коробки) точки зрения, то они бы начали понемногу допетривать в чём сила этого языка.

Бейсик он не для того, чтобы колупаться в нутрах и епстись с ассемблером, эти опции должны быть,
но не с порога, с порога надо чтобы "коврик лежал под ногами, стул чтобы сесть, диван чтобы лечь и т.п.",
а не "голые стены, доски и молоток", при этом периодически приходят ревизоры и конфискуют имущество,
ну так, чтобы не расслаблялся.
1
Эксперт по электронике
7153 / 3332 / 342
Регистрация: 28.10.2011
Сообщений: 13,147
Записей в блоге: 7
27.10.2024, 22:05
Цитата Сообщение от Quiet Snow Посмотреть сообщение
начали внедрять ООП.
Что именно пошло не так? Криво работает ООП?
Или имеете в виду что с того момента развитие FB пошло не по тому пути что нужно?
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
28.10.2024, 08:06
locm, я не тестировал как оно там работает, ни разу не интересно. Там сейчас уже
мало что работает, почти все старые работы сдохли, завести их сможет только человек, который
в совершенстве владеет FB и не просто владеет, а следил за изменениями всех версий.
Я этим [тут подобрать нужное слово], слава богу, в совершенстве не владею(т.к. оно уже давно
сравнивается по сложности с тем же си) и сильно не следил за беклогами.

На самом деле не хочется углубляться в подробности, потому что будет куча суровых русских слов
в сторону разрабов, можно сказать одно: эти люди, пришедшие с другого ЯП, не будем говорить
какого, люто обделались в штаны, изгадили нормальное начинание и потирая руки, спокойно разошлись.
Куча работы комьюнити была слита в унитаз. Если 10 лет назад оно как-то ковыляло на одном костыле,
то сейчас это инвалид без костыля и коляски, костыль сломался, а коляску разбили вандалы.
0
1407 / 866 / 93
Регистрация: 08.02.2017
Сообщений: 3,700
Записей в блоге: 2
28.10.2024, 17:38
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Бейсик он не для того, чтобы колупаться в нутрах и епстись с ассемблером, эти опции должны быть,
но не с порога, с порога надо чтобы "коврик лежал под ногами, стул чтобы сесть, диван чтобы лечь и т.п.",
а не "голые стены, доски и молоток", при этом периодически приходят ревизоры и конфискуют имущество,
ну так, чтобы не расслаблялся.
А в VB наоборот не хватает такой дверки, чтобы заглянуть внутрь каких-то сложных конструктов и чего-нибудь подкрутить. Вот, допустим, есть такая простая на первый взгляд вещь, как добавление пункта в контекстное меню, реализуется довольно не просто. Если взять обычное статичное конт. меню файла то в него можно добавить пункт достаточно просто через реестр. Но я бы хотел сделать такую фигню, чтобы добавять пункт в конт. меню перетаскивания, и она реализуется не просто, только с помощью специального обработчика. Это нужно создавать специальный com-класс, но есть подробные инструкции как это сделать на сpp, но если коснись vb то на нем-то уже будут сложности, потому что нельзя просто так залезть в ком-класс и сдлеать все-так как в той инстукции.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
28.10.2024, 18:49
Цитата Сообщение от testuser2 Посмотреть сообщение
А в VB наоборот не хватает такой дверки, чтобы заглянуть внутрь каких-то сложных конструктов и чего-нибудь подкрутить.
VB 6 очень стар, хотя тут люди его очень даже твикали, не знаю насколько им удалось добиться
того, что они хотели. Думаю там очень нефиговые нюансы.
VB насколько мне известно довольно спокойно подключает dll-ки, нужно только самому писать декларации.


Тема всё равно протухнет, поэтому я бы тут предпочёл обсудить вообще какие-нибудь чисто прогерские
насущные вопросы. Например очень бы кстати пришёлся таймер, высокоскоростной(до 1000 коллбеков в секунду),
и чтобы не жрал целое ядро, у меня есть два решения. Оба на потоках(один вариант жрёт целое ядро,
второй - до половины, один даёт 12 тыс коллбеков(на моём компе), второй не очень стабилен ~10-25тыс коллбеков),
но я бы почитал что коллеги скажут, потому что облазил пол инета и там кукиш с маслом.

Желательно что-то простое, чтобы не пришлось читать целый учебник дабы завести элементарный таймер
в коллбеке. Под DOS это было сделать просто, там было аж целых 3 канала таймера, перехватывался вектор
и делались грязные дела с тактовым генератором через порты. Под виндой же как понимаю есть какие-то
проблемы и вопрос особо нигде не обсуждается.
0
1407 / 866 / 93
Регистрация: 08.02.2017
Сообщений: 3,700
Записей в блоге: 2
28.10.2024, 18:55
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Например очень бы кстати пришёлся таймер, высокоскоростной(до 1000 коллбеков в секунду)
Оёй про какие-то колбеки речь зашла, тагды я пошел, не нужны мне ваши комбеки, но вы сделайте чтоб было очень быстро пожалуйста ))
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
28.10.2024, 19:28
Цитата Сообщение от testuser2 Посмотреть сообщение
Оёй про какие-то колбеки речь зашла, тагды я пошел, не нужны мне ваши комбеки, но вы сделайте чтоб было очень быстро пожалуйста ))
Я рад что тебя устраивает встроенный в FB

PureBasic
1
SLEEP 1, 1
Он замечателен и превосходен. И даёт, в среднем, 64 кадра в секунду, причём не ровно 60, а именно 64.
И в потоке - так же. Да он превосходно бережёт время ЦП, но и как разграничитель времени он - смешной.
Ещё бывает, что включаешь фоном браузер и ввжжуххх этот слип, внезапно, начинает лопатить 1000 кадров.
Т.е. взял, подвязался так к нему эпично, чувак открыл фоном браузер, твою прогу и вжууух - нежданчик.

Когда моя уже старенькая видеокарта может делать 8000 FLIP-ов за секунду. Или встроенный в FB
таймер(считывалка значения) переключается примерно 12000 раз. Так много конечно не надо,
для отображения хватает обычно 60-75, максимум 120-150(для плавности картинки), а вот на обсчёт движков
хотелось бы ставить от 300 кадров в зависимости от назначения движка. И не методом "а давай ка
мы сольём 5 кадров в один" быстренько в цикле за 0 секунд. Может не все понимают разницу, но
для движка это пролаг, он должен реально градуироваться по времени(например для минимизации
задержки ввода, поскольку ввод мы обсчитываем в цикле, привязанном к какому-либо движку).

Т.е. это можно делать только имея сверхточный быстрый таймер, внутри которого можно поставить
"прореживалку" до необходимой частоты.

Но вообще это не столь важно, я просто думал что кому-то это будет интересно поколупать. Это вроде
просто технический аспект, не привязанный к какой-либо области.
0
Эксперт по электронике
7153 / 3332 / 342
Регистрация: 28.10.2011
Сообщений: 13,147
Записей в блоге: 7
28.10.2024, 19:51
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Под виндой же как понимаю есть какие-то
проблемы и вопрос особо нигде не обсуждается.
Под виндой многозадачность и лезть в железо нельзя, т. к. повлияет на другие приложения. DOS однозадачна и комп выполняет только одно приложение.
0
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
28.10.2024, 20:00
Quiet Snow, в винде есть мультимедийные таймеры, которые твой SLEEP и ускоряют когда ты браузер запускаешь. По сути у тебя планировщик начинает работать с большей частотой поэтому и твой поток чаще получает управление, но тут есть потеря производительности на переключение контекста.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
28.10.2024, 21:26
Цитата Сообщение от The trick Посмотреть сообщение
Quiet Snow, в винде есть мультимедийные таймеры, которые твой SLEEP и ускоряют когда ты браузер запускаешь.
Если честно не совсем понимаю как это работает, т.е. браузер начинает как-то участвовать в
работе планировщика(это же по сути ядро), но когда увидел в чём весь сыр бор - офигел.
Штука странная, местами неприятная.

Если что, второй вариант таймера - это классический код producer-consumer. В целом меня
устраивает, разве что так и не понял сам механизм, но он тупо на мьютексах, в интернете таких схем
не видел, там мьютексы + семафоры. Кто-то схитрожопил, может есть подводные камни, не знаю,
пока не понял. Но странно, что никто не копал по теме альтернативных таймеров.
Наверняка же что-то стандартизованное в винде должно быть. Не все же будут такие костыли городить.

Добавлено через 1 час 2 минуты
The trick, немного бегло ознакомился с "мультимедийными таймерами".
Как правильнее организовать?

Создать фиктивное окно в потоке, с обработчиком сообщений, создать объект ядра, оттуда посылать
сообщение в окно, из окна уже делать вызов функции обратного вызова?

Получится так, или что-то не догоняю?
0
Эксперт по электронике
7153 / 3332 / 342
Регистрация: 28.10.2011
Сообщений: 13,147
Записей в блоге: 7
28.10.2024, 21:33
Лучший ответ Сообщение было отмечено Quiet Snow как решение

Решение

Цитата Сообщение от Quiet Snow Посмотреть сообщение
Он замечателен и превосходен. И даёт, в среднем, 64 кадра в секунду, причём не ровно 60, а именно 64.
И в потоке - так же. Да он превосходно бережёт время ЦП, но и как разграничитель времени он - смешной.
Ещё бывает, что включаешь фоном браузер и ввжжуххх этот слип, внезапно, начинает лопатить 1000 кадров.
Т.е. взял, подвязался так к нему эпично, чувак открыл фоном браузер, твою прогу и вжууух - нежданчик.
Этот нежданчик называется timeBeginPeriod().
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
28.10.2024, 23:51
Цитата Сообщение от locm Посмотреть сообщение
Этот нежданчик называется timeBeginPeriod().
Спасибо за инфу, я с ухмылкой на лице эти штуки созерцаю, вроде работает, а вроде и не понятно
когда оно крякнется.

Пример, собранный из кусков:
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#INCLUDE "windows.bi"
#INCLUDE ONCE "win/mmsystem.bi"
DIM SHARED hTimer AS HANDLE
DIM SHARED dueTime AS LONGINT
 
''-----------------------------------------------------------------------
'' This is our thread procedure. The WaitForSingleObject call will block
'' the thread’s execution (so it uses no processor time), returning when
'' the state of the timer is set to signaled.
''-----------------------------------------------------------------------
 
DIM Resu AS MMRESULT
Resu = timeBeginPeriod(1)
IF Resu = TIMERR_NOERROR THEN
  PRINT "ok!"
  ELSEIF Resu = TIMERR_NOCANDO THEN
  PRINT "error!": SLEEP: END
  ELSE
  PRINT "bred!": SLEEP: END
END IF 
 
SUB ThreadProc(BYVAL lpParameter AS ANY PTR)
    DO
        WaitForSingleObject( hTimer, INFINITE )
 
        PRINT "*";
    LOOP
END SUB
 
''-------------------------------------------------
'' Create a waitable synchronization timer object.
''-------------------------------------------------
 
hTimer = CreateWaitableTimer(0, 0, 0)
 
''-------------------------------------------------------------------
'' Activate the timer as a periodic timer with a period of 1 second,
'' specifying the current system time + 1 second as the due time
'' (the time at which the timer is first signaled, and after which
'' it will automatically reactivate each time the period elapses).
''
'' Note that the due time is in 100ns intervals, and that negative
'' values indicate relative time.
''-------------------------------------------------------------------
 
dueTime = -10000000
SetWaitableTimer( hTimer, CAST(LARGE_INTEGER PTR, @dueTime), 1, 0, 0, 0 )
 
''-----------------------------------------------
'' Create a separate thread to display the time.
''-----------------------------------------------
 
CreateThread( 0, 0, cast(LPTHREAD_START_ROUTINE, @ThreadProc), 0, 0, 0 )
 
SLEEP
Добавлено через 1 час 22 минуты
Самое забавное, функция, судя по документации, ещё с 2000-й винды, но в FB её по умолчанию так
и не добавили, что сопровождает все поделки на нём этими "весёлыми эффектами" американских горок.
А ведь там действительно приличная FBGfx, так-то вроде понятно что где-то в фоне ещё должно
висеть окошко с OpenGL, подёргивающее иногда FLIP, чтобы видеокарта подняла частоты.
И эта, собственно, функция, чтобы увеличить скорость мультимедийных таймеров. Ну и конечно
каким-то чёртом надо озаботиться о том, чтобы не было вертикальной синхронизации(тут уже сложнее).
Разве что работать через GFX_NULL, парни тут вроде говорили, что можно аппаратно блиттить.
Короче есть куда копнуть в плане нормального обработчика.
Если же в OpenGL, то вроде можно с помощью расширения выключить вертикальную синхронизацию,
ну конечно если в драйвере установлено значение "авто" или "управление от приложения".

Добавлено через 35 минут
Цитата Сообщение от CoderHuligan Посмотреть сообщение
компиляцию на три разных режима, режим совместимости с QuickBasic, легкий и режим fb, была ущербной. Это внесло только путанницу в головы разработчиков и пользователей.
Оно по сути все ретранслировалось в си, потом в асм. Думаю там парсер был на уровне "перефигачим
QBLang код в FBLang" из-за схожести синтаксиса. Потому они так и делали. Просто QB код был по сути
устаревшим и его почти не поддерживали, как и FBLite. По сути диалектом FB просто заменили QB и оно
уже далеко не бейсик, при том сам QB диалект весьма кастрирован. Помню смотрел, как там WinAPI вызывать,
чисто для портирования, ну настолько дерьмово оно сделано если с QB диалекта надо это сделать.
Просто "мехом внутрь"... Ну т.е. если 100% не знаешь - никогда не догадаешься.
0
Эксперт по электронике
7153 / 3332 / 342
Регистрация: 28.10.2011
Сообщений: 13,147
Записей в блоге: 7
29.10.2024, 00:32
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Помню смотрел, как там WinAPI вызывать,
чисто для портирования, ну настолько дерьмово оно сделано если с QB диалекта надо это сделать.
Можно небольшой пример, скажем вызов MessageBox()?
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
29.10.2024, 06:21
Цитата Сообщение от locm Посмотреть сообщение
Можно небольшой пример, скажем вызов MessageBox()?
Так я, собственно, про FB в режиме QB, а не про QB для DOS.
Увидел случайно в примере от Antony Gual, когда переписывал под FB.

PureBasic
1
2
3
    IF __MULTIKEY(1) THEN EXIT DO
    turn% = __MULTIKEY(&H4B) - __MULTIKEY(&H4D)
    mov% = __MULTIKEY(72) - __MultiKey(80) + ini%
WinAPI не нашёл, только функции FB в режиме QB. WinAPI вроде тоже как-то так же можно было
но возможно забыл и спутал или с какой-то версии выпилили.

Добавлено через 23 минуты
...

короче ещё немного порылся, да можно было, но, сами понимаете насколько через жопу, доходит до маразма:

PureBasic
1
2
3
4
5
'$Lang: "QB"
 
DECLARE FUNCTION MessageBox LIB "user32" ALIAS "MessageBoxA" (BYVAL hwnd AS LONG, BYVAL lpText AS __LONGINT, BYVAL lpCaption AS __LONGINT, BYVAL wType AS LONG) AS LONG
 
MessageBox (0, SADD("AAA"), SADD("BBB"), 0)
В общем это всё для любителей и ценителей мазахистинга.
0
Эксперт по электронике
7153 / 3332 / 342
Регистрация: 28.10.2011
Сообщений: 13,147
Записей в блоге: 7
29.10.2024, 22:18
Цитата Сообщение от Quiet Snow Посмотреть сообщение
В общем это всё для любителей и ценителей мазахистинга.
Не сказал бы что полная жесть.
Декларация похожа на VB.
Строковых типов нет что приходится через указатель?
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
30.10.2024, 01:18
Цитата Сообщение от locm Посмотреть сообщение
Не сказал бы что полная жесть.
Ну не полная, но опять же не уверен, что эта инфа, как это сделать, ищется с кондачка.
А если точно не знать, что типы надо брать с FB через подчёркивание и как конкретно декларировать
- то и не догадаешься вовсе. Это на самом деле не открывает никаких широких возможностей
портирования как людям может показаться. Лучше всё равно переписывать на FBLite или FB.

Цитата Сообщение от locm Посмотреть сообщение
Строковых типов нет что приходится через указатель?
Можно сделать так:
PureBasic
1
2
3
4
5
'$Lang: "QB"
 
DECLARE FUNCTION MessageBox LIB "user32" ALIAS "MessageBoxA" (BYVAL hwnd AS LONG, BYREF lpText AS __ZSTRING, BYREF lpCaption AS __ZSTRING, BYVAL wType AS LONG) AS LONG
 
MessageBox (0, "AAA", "BBB", 0)
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
30.10.2024, 13:57
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Могу предположить что
в самых первых версиях вообще не шло речи о добавлении в BASIC синтаксис, того же си, включая
препроцессор и прочие штуки, это всё выглядит очень стрёмно
Как обычно пошли по пути наименьшего сопротивления, в общем потоке. Основная ошибка: привязка к эко-системе Си. И даже диалект fb слишком смахивает на Си, просто несколько вкусностей добавили, и то сомнительно работающих.. Понятно, что делали сишники, причем из мира никсов. Разрабатывать под, к примеру, винду предлагается через её же api. Дык я так и на Си могу на api писать, в чем преимущество? Подключить стороннюю оконную библиотеку? Это уже не из философии basic, когда все свое ношу с собой. То что там строки саморасширяются, и то по одному символу за раз? А не стремно ли писать софт если у тебя такая ж..а внутри крутится, и ты даже не можешь ничего с этим поделать? Или писать свои либы предлагается? fb не подходит под серьезный софт. Сыроват продукт.
Ну и пишут наверно эти расширения, благодаря тому, что есть указатели и динамическое выделение памяти. Но зачем тратить на это свое время в basic?
Графическая библа из коробки? Да, это круто. Но и в Си можно подключить любую графическую библиотеку коих воз и маленькая тележка, и будет не просто то же самое, а будет гораздо лучше и быстрее все работать. А лучше потому, что все прозрачней, хотя также до определенной степени.

Вывод прост: до сих пор не создана достойная альтернатива VB, что бы было во многом как там, с своей ide, но не привязано к одной ОС, и чтобы бы было все прозрачней, чем в VB. Чтобы можно было дотянуться до потрохов, и даже кое что там менять если потребуется. Я не думаю, что путь чистой компиляции в один исполняемый файл это наиболее правильный путь, конкретно для basic. Лучше через p-код, или шитый промежуточный код, посредством виртуальной машины. Но виртуальная машина должна быть достаточно компактной и быстрой, что бы быть зашитой в exe. При этом мы избежим проблем совместимости версий. Можно будет создавать модули чисто на промежуточном языке, чтобы менять условия компиляции на более высокоуровневом ЯП, а можно добавлять в промежуточный ЯП функции на асме не перекомпилируя существующих exe, то есть обновление может происходить на ходу, причем делаться самими пользователями. Я думаю, что любая система должна иметь сквозную прозрачность сверху до низу, чтобы быть понятной и легко регулируемой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.10.2024, 13:57

Нет библиотеки com.anylogic.libraries.enterprise
Пытаюсь открыть файл, который был создан в конце 2019- начале 2020 . Тогда были версии 8.3-8.5, если я не ошибаюсь. Открываю файл в версии...

Создание статической библиотеки в FreeBasic
Есть непонятки со статической библиотекой. Код. Public Function Add2( ByVal x As Integer, ByVal y As Integer ) As String Return str(...

Сетевые библиотеки для DOS
Доброе время суток, знает ли кто-нибудь библиотеки(C++) для работы в сети под дос(и если да, то заодно инструкции к ним), необходимо...

Сторонние библиотеки
На официальном сайте наткнулся на: Ensemble8 MandelbrotSet Modena Может кто-нибудь объяснить, что за оно и с чем едят?

Сторонние библиотеки
Здравствуйте. У меня такой вопрос. Можно ли как нибудь подгружать сторонние библиотеки написанные скажем на Delphi? И если можно подскажите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru