Библиотека – это набор функций и процедур (FUNCTION, SUB),
хранящихся в откомпилированном виде. Подключив библиотеку, вы можете
вызывать эти ф-ии из своей программы. Библиотеки для qb обычно состоят
из 3-х файлов. Сама библиотека – это файл с расширением .qlb. Для того
чтобы сделать .exe файл из программы, использующую этот .qlb нужен еще и
.lib файл. Ещё может присутствовать и включаемый в проект инклуд файл,
содержащий объявления функций/процедур и типы, массивы, константы и
глобальные переменные, которые используют эти ф-ии (в принципе там может
быть что угодно. У этих файлов расширение обычно – .bi, .dec или .inc. Такие файлы подключают метакомандой $INCLUDE.
Например, чтобы использовать CALL INTERRUPT надо подключить
стандартную библиотеку qb.qlb (она входит в поставку QBASIC 4.5).
Делается это посредством запуска QBASIC’а с командной строки с ключом
/L. Например так: qb.exe /L qb.qlb myfile.bas . Затем в начале файла
пишем: REM $INCLUDE: ‘qb.bi’ (или ‘$INCLUDE:’qb.bi’). Перед метакомандой
обязан стоять символ комментария! $INCLUDE просто «засовывает» в
исходник содержимое указанного файла. $INCLUDE можно и не использовать и
скопировать в исходник содержимое .bi файла самостоятельно.
Чтобы создать из исходника на QB библиотеку надо в меню выбрать
Run->Make Library. После этого создадутся .qlb и .lib файлы. А .bi
надо сделать самому.
Библиотеки можно делать не только из .bas файлов, но и из объектников (.obj) – Assembler’а или C. Делается это так:
1. Сначала создадим .lib включающий в себя стандартную QBASIC’овскую
библиотеку, чтобы потом последнюю не приходилось каждый раз подгружать:
LIB.EXE my_lib.LIB QB.LIB; (это делать не обязательно)
2. Запихнем в созданный .lib
(my_lib.lib) нужный .obj
LIB.EXE my_lib.LIB +my_obj.OBJ;
(так можно делать сколь угодно раз, добавляя все нужные .obj’и)
3. И сделаем .qlb из полученного .lib’а:
LINK.EXE /q my_lib.LIB,my_lib.QLB,,BQLB45.LIB
(.qlb можно сразу и из .obj’а
сделать –
LINK.EXE /qu my_obj.obj,
my_lib.qlb,,BQLB45.LIB)
Естественно, все файлы используемые в этих строках должны лежать в
одной директории или доступны по PATH; в противном случае надо указывать
полные пути.
Объявляется потом ф-ия так: DECLARE FUNCTION FuncName [CDECL]
[ALIAS "RealName"] (BYVAL|SEG param1, BYVAL | SEG param2,…)
CDECL надо писать, если .obj создавали на C/C++. Тогда QB передаст
параметры ф-ии в обратном порядке. ALIAS пишем, если на языке, в котором
писался этот .obj ф-ия называлась не так, как мы ее хотим назвать в
нашей qb программе. Тогда после ALIAS в кавычках и напишем ее старое
название. Выбираем BYVAL, если параметры надо передавать по значению,
SEG – если по ссылке.
Пример:
DECLARE FUNCTION Stepen& ALIAS «Power» (BYVAL osnovanie%, BYVAL pokazatel%)
Библиотеки для QBasic Название |
Автор |
Описание |
Размер |
Future Library 3.50 |
Jorden Chamid & Michael Rye Sorensen |
Одна из лучших QB-библиотек. SVGA (c мышью);EMS/XMS; WAVE; BMP/PCX/GIF Animated;… |
550K |
DirectQB 1.61 |
Angelo Mottola |
Великолепная библиотека для написания игрушек с исходниками на ассемблере. |
350K |
Blast! |
Andrew L. Ayers |
Отличная библиотека для работы с графикой в SCREEN 13 |
66K |
CosmoX 2.0 |
bobby |
Еще одна мощная библиотека для программистов игр с исходниками на асме |
180K |
BWSB 1.20 |
Edward Schlunder |
Проигрывание S3M/MOD/669/ULT/MED/FAR/STM на различных картах |
1.3M |
Long File Lib |
John Rude |
Работа с файлами/каталогами с длинными именами. |
11K |
MSTimer |
Brent Ashley |
Возможность работы с таймером до микросекунд + исходники на асме |
22K |
XMS Libs |
Robin Duffy/Michael Poindexter/Gabriel Fernandez/Exposed Dreams |
Четыре библиотеки для работы с XMS, две из них исходниками на асме |
44K |
Audio CD Toolkit |
unknown |
Библиотека для работы со звуковыми CD |
17K |
AABas 2.1 |
Charon Soft |
Множество полезных фунций для работы с клавиатурой, джойстиком, мышью, файлами, XMS, … |
30K |
AdvBas |
Steven Crocker |
Библиотека для работы со стеками и очередями(queue) |
13K |
B4G |
Andre Victor T. Vicentini |
Библиотека, позволяющая работать в защищенном режиме |
190K |
Comm Lib |
Scott Slater |
Библиотекадля работы с модемом |
65K |
QBSock |
Dmitry Brant |
Библиотека для работы с TCP/IP при запущенном VB.exe и исходник Telnet клиента |
13K |
QB-MMX 0.7 |
zChip |
Поддержка инструкций MMX |
13K |
MultiLib 2.10d24 |
Keven Coots |
Позволяет делать библиотеки, используя нужные ф-ии из других библиотек |
115K |
|