игра брюс 2048
Главная / Программирование / Программирование на Lazarus / Тест 26

Программирование на Lazarus - тест 26

Упражнение 1:
Номер 1
Что такое DLL?

Ответ:

 (1) библиотека компонентов 

 (2) динамическая библиотека адресов ссылок 

 (3) динамически подключаемая библиотека Windows 

 (4) библиотека функций и процедур Lazarus-проекта 


Номер 2
Какое расширение обычно имеют динамически подключаемые библиотеки Windows?

Ответ:

 (1) DLB 

 (2) DLL 

 (3) LIB 

 (4) SO 

 (5) COM 


Номер 3
Что такое динамически подключаемые библиотеки?

Ответ:

 (1) механизм внедрения в программу модулей сторонних разработчиков 

 (2) механизм внедрения в программу не Lazarus-компонентов 

 (3) механизм внедрения в программу функций и процедур, написанных другими программистами, и возможно, на другом языке программирования 

 (4) механизм внедрения в программу функций и процедур, написанных другими программистами, обязательно на Object Pascal 


Упражнение 2:
Номер 1
Чем механизм DLL отличается от механизма модулей?

Ответ:

 (1) ничем, они одинаковы 

 (2) в DLL можно использовать только функции, в модулях – и функции, и процедуры 

 (3) код модулей внедряется в проект, увеличивая размер программы, а код DLL – нет 

 (4) код DLL внедряется в проект, увеличивая размер программы, а код модулей – нет 


Номер 2
Укажите отличие DLL от модулей

Ответ:

 (1) отличий нет 

 (2) для каждой копии загруженной программы будет загружена своя копия модуля, но одна копия DLL для всех 

 (3) для каждой копии загруженной программы будет загружена своя копия DLL, но одна копия модуля для всех 


Номер 3
Выберите отличие модулей от DLL

Ответ:

 (1) отличий нет 

 (2) модули, в отличие от DLL, языконезависимы, поэтому в них нельзя использовать глобальные переменные и объекты, это просто набор процедур и функций 

 (3) DLL, в отличие от модулей, языконезависимы, поэтому в них нельзя использовать глобальные переменные и объекты, это просто набор процедур и функций 


Упражнение 3:
Номер 1
Может ли в DLL быть раздел uses?

Ответ:

 (1) нет, к динамической библиотеке нельзя ничего подключать 

 (2) да, к динамической библиотеке в этом разделе можно подключать модули 

 (3) да, к динамической библиотеке в этом разделе можно подключать другие DLL 


Номер 2
Каким ключевым словом начинается DLL?

Ответ:

 (1) object 

 (2) program 

 (3) library 

 (4) dynamic 

 (5) dynamiclibrary 


Номер 3
Какой строковый тип рекомендуется использовать в DLL для передачи параметров, чтобы этой DLL могли пользоваться не Lazarus-программисты?

Ответ:

 (1) String 

 (2) String[255]  

 (3) ShortString 

 (4) PChar 

 (5) Unicode 


Упражнение 4:
Номер 1
Мы в DLL описываем процедуру, которую затем можно будет вызывать во внешней программе. Какое соглашение о вызовах подпрограмм в DLL используется по умолчанию?

Ответ:

 (1) Cdecl 

 (2) Register 

 (3) Stdcall 


Номер 2
Мы в DLL описываем процедуру, которую затем можно будет вызывать во внешней программе. Какое соглашение о вызовах подпрограмм в DLL работает быстрее, хотя может применяться только если DLL, написанную на Lazarus, подключают к программе, написанной тоже на Lazarus?

Ответ:

 (1) Cdecl 

 (2) Register 

 (3) Stdcall 


Номер 3
Мы в DLL описываем процедуру, которую затем можно будет вызывать во внешней программе. Когда имеет смысл использовать для этого соглашение Register?

Ответ:

 (1) если DLL затем будут подключать Си-программисты 

 (2) если DLL затем будут подключать не в Windows-платформе 

 (3) если требуется наиболее гибкое соглашение 

 (4) если и DLL, и программу, использующую её, создают на Lazarus 


Упражнение 5:
Номер 1
В каком разделе DLL указывается список подпрограмм, которые должны быть доступны извне?

Ответ:

 (1) uses 

 (2) export 

 (3) begin-end 

 (4) library 


Номер 2
Что находится в разделе export в DLL?

Ответ:

 (1) список подпрограмм, которые должны быть доступны извне 

 (2) объявление подпрограмм и соглашений вызовов, которые должны быть доступны извне 

 (3) реализация (код) подпрограмм, которые должны быть доступны извне 

 (4) такого раздела в DLL нет 


Номер 3
Укажите верные способы описать список подпрограмм, которые должны быть доступны извне, в разделе export в DLL?

Ответ:

 (1) перечисляются через запятую имена подпрограмм, индексы им будут присвоены автоматически 

 (2) перечисляются через запятую имена подпрограмм и имена, по которым будет обращаться к ним внешняя программа 

 (3) перечисляются через запятую имена подпрограмм и индексы, по которым будет обращаться к ним внешняя программа 

 (4) указываются обязательно, имена подпрограмм, имена, по которым к ним будет обращаться внешняя программа, индексы и соглашения вызовов 


Упражнение 6:
Номер 1
Каким способом можно связать DLL с программой?

Ответ:

 (1) указать её в разделе uses, как модуль 

 (2) статическим связыванием 

 (3) динамическим связыванием 

 (4) модульным связыванием 


Номер 2
Мы решили связать DLL с программой наиболее простым способом. Какое связывание мы применили, если у нас есть следующий код описания подпрограммы из DLL?implementation
{$R *.lfm}
function MyFunc(s: PChar): PChar; stdcall; external 'MyDLL.dll';

Ответ:

 (1) динамическое связывание 

 (2) статическое связывание 

 (3) модульное связывание 

 (4) код неверный, произойдет ошибка времени выполнения 


Номер 3
Чем динамическое связывание DLL с программой отличается от статического?

Ответ:

 (1) при статическом связывании при загрузке программы загружаются и все используемые DLL, а при динамическом они подгружаются по мере необходимости 

 (2) при динамическом связывании при загрузке программы загружаются и все используемые DLL, а при статическом они подгружаются по мере необходимости 

 (3) DLL можно связывать с программой только динамическим связыванием 

 (4) DLL можно связывать с программой только статическим связыванием 




Главная / Программирование / Программирование на Lazarus / Тест 26