首先,为此,我建议您使用读取OS X ABI动态加载程序参考.
为此,您必须使用NSCreateObjectFileImageFromMemory API.
给定指向内存中Mach-O文件的指针,此函数创建并返回一个
NSObjectFileImage
引用.当前实现仅适用于bundle,因此必须使用-bundle
链接器选项构建Mach-O可执行文件.
address
指向的内存块必须用vm_allocate
(/usr/include/mach/vm_map.h
)分配.
确保遵守vm_allocate
用于包含模块的内存块的要求.
获取目标文件映像后,必须使用NSLinkModule函数将模块链接到程序中.
调用此函数时,给定模块引用的所有库都将添加到库搜索列表中.除非您通过
NSLINKMODULE_OPTION_PRIVATE
,否则NSLinkModule
将模块中的所有全局符号添加到全局符号列表中.
链接后,不要忘记通过调用NSDestroyObjectFileImage函数进行清理.
调用此函数时,动态加载程序会调用参数指向的内存
vm_deallocate
(/usr/include/mach/vm_map.h
)objectFileImage
.
请注意,虽然这些函数已被弃用,但使用建议的替代dlopen
et ,没有替代(据我所知).人.
归档时间: |
|
查看次数: |
1611 次 |
最近记录: |