Загрузка процедур, функций.

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Загрузка процедур, функций.

Сообщение Seenkao » 15.12.2021 20:50:07

Есть различные способы объявления вызываемых процедур и функций. Например, такой:
Код: Выделить всё
function  glXCreateContext(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: Boolean): GLXContext; cdecl; external libGL;

такой:
Код: Выделить всё
var
  glXCreatePbuffer: function(dpy: PDisplay; config: Integer; attribList: PInteger): GLXPBuffer; cdecl;

или вообще такой (а может быть ещё более замороченный):
Код: Выделить всё
const
  TglXCreatePbuffer: function(dpy: PDisplay; config: Integer; attribList: PInteger): GLXPBuffer; cdecl;
var
  glXCreatePbuffer: TglXCreatePbuffer;
// или в каком-нибудь таком варианте
  glXCreatePbuffer: function;

В первом случае, нам ни чего делать не надо, в двух других зачастую надо загружать адреса этих процедур и функций.

В чём собственно разница как я буду их загружать?
Seenkao
постоялец
 
Сообщения: 398
Зарегистрирован: 01.04.2020 03:37:12

Re: Загрузка процедур, функций.

Сообщение zub » 15.12.2021 20:58:28

1 - статический, адреса функций импортируются из libGL системой автоматически при запуске программы. при отсутствии libGL программа не запускается
2 - динамический, ты сам решаешь что откуда брать, сам разруливаешь наличие\отсутствие нужных библиотек. Пример - https://gitlab.com/freepascal.org/fpc/s ... /src/gl.pp
zub
долгожитель
 
Сообщения: 2819
Зарегистрирован: 14.11.2005 23:51:26

Re: Загрузка процедур, функций.

Сообщение Seenkao » 15.12.2021 22:23:52

получается в одном случае без разницы. Но если мне нужно будет проверять загружаются ли эти процедуры/функции, то лучше использовать их динамическую загрузку?!
Seenkao
постоялец
 
Сообщения: 398
Зарегистрирован: 01.04.2020 03:37:12

Re: Загрузка процедур, функций.

Сообщение zub » 15.12.2021 22:33:17

Если твоя программа что-то должна работать в случае осутствия либ - динамически.
Статически только для тех либ что гарантировано есть в системе.
zub
долгожитель
 
Сообщения: 2819
Зарегистрирован: 14.11.2005 23:51:26

Re: Загрузка процедур, функций.

Сообщение Seenkao » 17.02.2022 00:12:04

Статически загруженные библиотеки занимают меньше места. Соответственно размер программы меньше (для большинства не критично).
Seenkao
постоялец
 
Сообщения: 398
Зарегистрирован: 01.04.2020 03:37:12


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru