函数

模块Moduleopen_full

support: 2.70

声明 [src]

GModule*
g_module_open_full (
  const gchar* file_name,
  GModuleFlags flags,
  GError** error
)

描述 [src]

打开模块。如果模块已经打开,则其引用计数增加。如果没有,将使用file_name进行搜索。

从2.76开始,搜索顺序/行为如下:

  1. 如果file_name作为常规文件存在,则直接使用;否则
  2. 如果file_name没有平台正确的后缀和/或前缀,则将可能的后缀和前缀添加到基本名,直到找到文件,然后使用找到的任何内容;否则
  3. 如果file_name没有“.la”后缀,则添加“.la”。无论如何,如果找到匹配的.la文件(并且是libtool归档),则解析libtool归档以找到实际文件名,并使用该文件名。

在这个过程中,如果最后有一个可以在磁盘上访问的文件路径,它将被作为模块打开。如果不是,将尝试以原样打开file_name作为模块,希望系统实现能够以某种方式访问它。如果不可能,则返回NULL

请注意,在2.76之前,这种行为有所不同,但功能上有一些重叠。如果向后兼容是个问题,请咨询较早的GModule文档中关于file_name先前搜索顺序/行为的信息。

支持自: 2.70

此函数不直接对语言绑定可用。

参数

file_name

类型: const gchar*

包含模块的文件名或路径,或NULL以获取代表自身的主程序的GModule

参数可以NULL
数据由函数的调用者拥有。
该值是NUL终止的UTF-8字符串。
flags

类型: GModuleFlags

打开模块时使用的标志。这可以是任何GModuleFlags的逻辑OR

error

类型: GError **

可恢复错误的返回位置。

参数可以NULL
如果返回位置不是NULL,则必须将其初始化为NULL GError*
如果没有错误,函数将留下初始化的参数为NULL
在发生错误的情况下,参数将被设置为一个新的GError;调用者将接管数据,并负责释放它。

返回值

类型: GModule

成功时返回一个GModule,失败时返回NULL

数据由被调用函数拥有。