logo
Литература_1 / photon_old

Инициализация dll

Обычно DLL определяет функцию инициализации, которую вызывает приложение после того, как оно вызвало функцию dlopen() для загрузки DLL. Функция инициализации Вашей DLL требует полный путь к DLL.

Перед вызовом какого-либо кода PhAB функция инициализации должна вызвать ApAddContext() подобным образом:

ApAddContext(&AbContext, fullpath);

Аргументами здесь являются:

AbContext –

глобальная структура данных, которую PhAB перемещает в abmain.c

Эта структура имеет одно и то же имя во всех приложениях PhAB или DLL, так что Вы должны линковать Вашу DLL с опцией -Bsymbolic, как упомянуто выше.

fullpath –

полный путь к DLL, подходящий для передачи в функцию open().

Вы можете вызвать функцию ApAddContext() более одного раза, но Вы должны отслеживать, как много раз Вы её вызывали.

ApAddContext() возвращает 0 в случае успешного выполнения или –1 при неудаче. Не выполняйте вызов какой бы то ни было функции Ap*, если вызов функции ApAddContext() завершился неудачей.

          1. Yandex.RTB R-A-252273-3
            Yandex.RTB R-A-252273-4