Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 08.07.2022
Сообщений: 19

Статическая библиотека

10.08.2022, 22:15. Показов 1968. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня всем.

Кто может подсказать, имеется ли в purebasic возможность создать свою статическую библиотеку? Так сохранить функции, чтобы среда уже знала о них?

Чтобы не нужно было каждый раз прописывать, например:

PureBasic
1
2
3
Procedure MyFunction_1(str.s)
   Debug str
Endprocedure
А просто вызывать :

PureBasic
1
MyFunction_1("Hello, World!")
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.08.2022, 22:15
Ответы с готовыми решениями:

Статическая дата
Доброго времени суток! Подскажите пожалуйста,возможно в exele 2010,при вводе какого либо значения в ячейку,автоматически добавлялось...

Статическая библиотека
Добрый день. Подскажите, плз, описание статической библиотеки ее структуры. и утилиту которой можно проконтролировать...

Статическая библиотека
Имеется статическая библиотека, которая подключается к основной программе. Необходимо максимально скрыть всё с библиотеки, а именно: скрыть...

11
Заблокирован
11.08.2022, 00:10
Цитата Сообщение от tab_metro Посмотреть сообщение
Чтобы не нужно было каждый раз прописывать, например:
можно, но это всё равно не удобно, вдруг надо что-то оперативно поправить, храни готовые функции отдельно и подгружай их когда надо
PureBasic
1
2
3
  IncludePath  "Sources\Data"
  IncludeFile  "Sprite.pb"
  XIncludeFile "Music.pb"
в виде модулей тоже удобно
1
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
11.08.2022, 06:29
у меня отдельный файл с мелкими функциями, всё изначально блокировано, открываю по надобности
собирай свою коллекцию, у каждого свои надобности
Цитата Сообщение от tab_metro Посмотреть сообщение
Чтобы не нужно было каждый раз прописывать, например:
если бы это было удобно, давно бы придумали, а пока каждый себе придумывает
0
Заблокирован
11.08.2022, 08:16
Цитата Сообщение от newJS Посмотреть сообщение
у меня отдельный файл с мелкими функциями
мелкие например удобно в шаблонах хранить
0
1 / 1 / 0
Регистрация: 08.07.2022
Сообщений: 19
11.08.2022, 08:27  [ТС]
Спасибо. Решение с указанием пути и подключением файлов мне известно.
Но, хотелось бы по аналогии с константами и структурами. Создается некий файл filename.pb, компилируется в файл filename.res и сохраняется в папку ...\PureBasic_5.62\Residents. Тогда не надо инклюдить файлы со структурами и константами, просто использовать их в коде (как "свои родные").

В описании (https://www.purebasic.com/docu... dents.html) нашел только вот это: "Residents are precompiled files which are loaded when the compiler starts. They can be found in the 'residents' folder of the PureBasic installation path. A resident file must have the extension '.res' and can contain the following items: structures, interfaces, prototypes, macros and constants. It can not contain dynamic code or procedures."

А хотелось бы что-то похожее для функций.
0
Эксперт по электронике
6493 / 3123 / 331
Регистрация: 28.10.2011
Сообщений: 12,278
Записей в блоге: 7
11.08.2022, 11:13
Лучший ответ Сообщение было отмечено tab_metro как решение

Решение

Цитата Сообщение от tab_metro Посмотреть сообщение
Создается некий файл filename.pb, компилируется в файл filename.res и сохраняется в папку ...\PureBasic_5.62\Residents
Для этого нужна утилита TailBite.
Библиотеки будут в папке PureLibraries\UserLibraries или в папке субсистемы в зависимости от выбора в утилите.
Вложения
Тип файла: zip TailBite.zip (2.34 Мб, 19 просмотров)
0
1 / 1 / 0
Регистрация: 08.07.2022
Сообщений: 19
11.08.2022, 20:41  [ТС]
Утилита TailBite создает из файла mylib.pb библиотеку mylib.res, правда размещает ее в неожиданном месте. Копирую в папку PureLibraries\UserLibraries, но среда библиотеку не принимает, говорит, что формат устарел и доступен для версий PB 5.20 и ниже, а у меня 5.62. Может быть я неправильно задаю какие-нибудь настройки...
0
Эксперт по электронике
6493 / 3123 / 331
Регистрация: 28.10.2011
Сообщений: 12,278
Записей в блоге: 7
11.08.2022, 21:54
Цитата Сообщение от tab_metro Посмотреть сообщение
создает из файла mylib.pb библиотеку mylib.res
В res файле только константы, структуры, макросы, интерфейсы и другой не исполняемый код.

Цитата Сообщение от tab_metro Посмотреть сообщение
что формат устарел и доступен для версий PB 5.20 и ниже, а у меня 5.62.
Путь к PB правильный?
0
1 / 1 / 0
Регистрация: 08.07.2022
Сообщений: 19
11.08.2022, 22:05  [ТС]
PureBasic Folder: C:\Program Files (x86)\PureBasic\
Asm source files folder: здесь не знаю, что указать, написал путь к исходнику D:\tab\PureBasic\PureBasic_0\mylib\
Library subsystem: PureLibraries\UserLibraries\
Select source file: D:\tab\PureBasic\PureBasic_0\mylib\lib1. pb
0
Эксперт по электронике
6493 / 3123 / 331
Регистрация: 28.10.2011
Сообщений: 12,278
Записей в блоге: 7
11.08.2022, 22:24
Лучший ответ Сообщение было отмечено tab_metro как решение

Решение

Процедуры должны быть отдельно, а объявления констант, структур, макросов, интерфейсов отдельно.
Экспортируемые процедуры должны быть объявлены как ProcedureDLL.
В архиве есть справка и примеры.
1
1 / 1 / 0
Регистрация: 08.07.2022
Сообщений: 19
11.08.2022, 23:06  [ТС]
Да, вот только нашел.
Ошибка была именно в ProcedureDLL

все заработало.
Большое спасибо!
0
1 / 1 / 0
Регистрация: 08.07.2022
Сообщений: 19
12.08.2022, 11:30  [ТС]
locm, Добрый день

Возможно, вы знаете, как указать, что аргумент функции является необязательным? Например :
PureBasic
1
2
3
ProcedureDLL.d ab_Log(val_.d, base_.d = 2)  ;   Логарифм val_ по основанию base_
    ProcedureReturn Log10(val_)/Log10(base_)
EndProcedure
Аргумент base_ необязательный. После создания статической библиотеки функция доступна, но требует оба аргумента.

Добавлено через 2 часа 50 минут
Нашлось решение
PureBasic
1
2
3
4
5
6
7
ProcedureDLL.d ab_Log(val_.d)   ;   Логарифм val_ по основанию 2 (это умолчание)
    ProcedureReturn Log10(val_)/Log10(2)
EndProcedure
 
ProcedureDLL.d ab_Log2(val_.d, base_.d) ;   Логарифм val_ по основанию base_
    ProcedureReturn Log10(val_)/Log10(base_)
EndProcedure
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.08.2022, 11:30
Помогаю со студенческими работами здесь

Статическая библиотека
lib main.h namespace x { int __stdcall WindowCreate( ... ); } main.cpp

Статическая библиотека VS2017
Здравствуйте, Подскажите пожалуйста, можно ли, и если можно то как в VS2017 собрать статическую lib библиотеку следующим образом: ...

Ошибки,статическая библиотека
Не понимаю,что не нравится компилятору. Пишет,что для "{" требуется объявление.. И если кто-то разбирается в создании статических...

Статическая библиотека в QT5
Будучи новичком в QT, прошу помощи у уважаемого сообщества, в вопросе создания статической библиотеки на QT. Просмотрев несколько, на мой...

Статическая библиотека на Fortran
Есть код на фортране. Мне нужно собрать его в статическую библиотеку lib. Далее эта библиотека должна использоваться в проекте на С++. Все...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru