函数
模块Moduleopen_full
support: 2.70
声明 [src]
GModule*
g_module_open_full (
const gchar* file_name,
GModuleFlags flags,
GError** error
)
描述 [src]
打开模块。如果模块已经打开,则其引用计数增加。如果没有,将使用file_name
进行搜索。
从2.76开始,搜索顺序/行为如下:
- 如果
file_name
作为常规文件存在,则直接使用;否则 - 如果
file_name
没有平台正确的后缀和/或前缀,则将可能的后缀和前缀添加到基本名,直到找到文件,然后使用找到的任何内容;否则 - 如果
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
。
数据由被调用函数拥有。 |