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
DyLibLoad返回的DLL的任何PTR句柄
symbol
一个包含函数的名称,或在库中的变量返回的地址。在Windows中,也可以是包含函数/变量序号的Short.

返回值

这个 Pointer到库中的函数或变量。

如果函数失败,返回值为0。

说明

DyLibSymbollibhandle 指向的dll中返回指向名为symbol 的变量或函数的指针。libhandle 是通过加载dll与DyLibLoad获得的。该符号必须是dll中的Export.
如果libhandle 为0,则在当前可执行文件或dll中搜索符号。

如果使用cdecl功能,则只需要指定该过程的名称。如果动态地链接到使用STDCALL创建的函数(Windows中的默认值),则必须对该函数进行装饰。要装饰一个函数,使用它的名字'@',然后使用作为参数传递的字节数。例如,如果函数FOO使用3个整数参数,则装饰函数将为“FOO @ 12”。记住,没有明确的Alias,过程名称将是大写。

如果链接到在Visual C ++(tm)中创建的dll,则不需要使用装饰。对于GCC,需要装饰。

注意:如果失败,dylibsymbol将尝试以4个字节的增量自动将过程从@ 0修改为@ 256。

例子

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

平台差异

  • 动态链接库在DOS中不可用,因为操作系统不支持它们。
  • 在Linux上不支持Ordinals,0总是返回。

方言差异

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

与QB差别

  • 新的FreeBASIC

参考