Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/39: Рейтинг темы: голосов - 39, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 20.07.2022
Сообщений: 44

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

27.09.2024, 08:18. Показов 12332. Ответов 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
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,694
Записей в блоге: 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
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,075
Записей в блоге: 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
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,694
Записей в блоге: 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
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,694
Записей в блоге: 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
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,075
Записей в блоге: 7
28.10.2024, 19:51
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Под виндой же как понимаю есть какие-то
проблемы и вопрос особо нигде не обсуждается.
Под виндой многозадачность и лезть в железо нельзя, т. к. повлияет на другие приложения. DOS однозадачна и комп выполняет только одно приложение.
0
Модератор
10061 / 3906 / 885
Регистрация: 22.02.2013
Сообщений: 5,856
Записей в блоге: 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
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,075
Записей в блоге: 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
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,075
Записей в блоге: 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
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,075
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru