DyLibSymbol
 
Возвращает адрес функции или переменной в DLL

Синтаксис

Declare Function DyLibSymbol ( ByVal library As Any Ptr, ByRef symbol As String ) As Any Ptr
Declare Function DyLibSymbol ( ByVal library As Any Ptr, ByVal symbol As Short ) As Any Ptr

Использование

result = DyLibSymbol ( library, symbol )

Параметры

library
Дескриптор DLL типа Any Ptr , возвращенный DyLibLoad
symbol
String содержащая имя функции, или переменной в библиотеке, чтобы вернуть адрес. В Windows только, также может быть Short , содержащий порядковый номер переменной\функции.

Возвращаемое значение

Pointer(указатель) для функции или переменной в библиотеке.

Если функция завершается неудачей, возвращаемое значение равно 0.

Описание

DyLibSymbol возвращает указатель на переменную или функцию с именем symbol , в DLL, на которую указывает libhandle. libhandle может быть получено путем загрузки DLL с DyLibLoad. Символ должен был Export(экспортирован) в dll.
Если libhandle равно 0, символ ищется в текущем исполняемом файле или DLL.

При использовании функций cdecl, только имя процедуры должно быть указано. Если динамическая ссылка на функцию создана с помощью STDCALL (по умолчанию в Windows), то функция должна быть декорирована. Для декорации функции используется свое имя, '@', и число байтов переданных в качестве аргументов. Например, если функция FOO принимает 3 аргумента типа integer, декорированная функция будет 'FOO@12'. Помните, без явного Alias, имя процедуры будет заглавными буквами.

Если линковка в DLL создана в Visual C ++ (тм), декорацию не нужно использовать. Для GCC, декорация необходима.

Примечание:  dylibsymbol, если не удается, попытается автоматически декорировать процедуру, от @0 до @256, с 4 байтовым шагом.

Пример

Смотрите страницу с примером загрузки Динамической библиотеки.

Различия платформ

  • Динамические библиотеки недоступны в DOS, поскольку операционная система не поддерживает их.
  • Порядковые номера не поддерживаются в Linux, всегда возвращается 0.

Различия диалектов

  • Не доступно в диалекте -lang qb , но есть псевдоним __Dylibsymbol.

Отличия от QB

  • Новое в FreeBASIC

См. также