Skip to content

DYLIBSYMBOL


返回 DLL 中函数或变量的地址。

语法

vb
declare function Dylibsymbol ( byval libhandle as any ptr, byref symbol as string ) as any ptr
declare function Dylibsymbol ( byval libhandle as any ptr, byval symbol as short ) as any ptr

用法

` result = Dylibsymbol ( libhandle, symbol )

`

参数

libhandle

Dylibload 返回的 DLL 的 any ptr 句柄。

symbol

包含库中要返回地址的函数或变量名的 string。仅在 Windows 上,也可以是包含函数/变量序号的 short 值。

返回值

指向库中函数或变量的 pointer

若函数失败,返回值为 0。

描述

Dylibsymbol 返回指向 libhandle 所指 DLL 中名为 symbol 的变量或函数的指针。libhandle 通过 Dylibload 加载 DLL 获得。符号必须在 DLL 中通过 Export 导出。

libhandle 为 0,则在当前可执行文件或 DLL 中搜索符号。

若使用 Cdecl 函数,只需指定过程名。若动态链接到使用 STDCALL(Windows 默认)创建的函数,则函数必须经过修饰。修饰函数名的方式是:函数名 + '@' + 参数所占字节数。例如,若函数 FOO 接受 3 个整数参数,修饰后的名称为 'FOO@12'。注意:若未使用显式 alias,过程名将为大写。

若链接到 Visual C++™ 创建的 DLL,则不需要修饰。对于 GCC,则需要修饰。

注意:dylibsymbol 若失败,将自动尝试以 @0 到 @256(4 字节递增)的方式修饰过程名。

示例

参见共享库页面上的动态加载示例。

平台差异

  • Linux 不支持序号,始终返回 0。
  • DOS 不支持序号,始终返回 0。
  • Windows 不支持将 Dylibsymbol 用于变量(仅支持过程)。
  • DOS:参见专属的共享库 - DOS页面

方言差异

  • -lang qb 方言中不可用,除非通过别名 __Dylibsymbol 引用。

与 QB 的区别

  • FreeBASIC 新增

另请参阅

  • Dylibload
  • Dylibfree
  • Export

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系