【发布时间】:2012-08-03 12:40:39
【问题描述】:
通过 NSCreateObjectFileImageFromMemory 函数可以从内存中加载包。有没有人在这方面有成功的经验?有没有人有这个功能的工作样本? 我的代码如下:
text srcPath = "/Applications/TextEdit.app/Contents/MacOS/TextEdit";
data_t data;
data.loadFromFile(srcPath);
void *addr;
kern_return_t err;
NSObjectFileImage img = nil;
NSObjectFileImageReturnCode dyld_err;
err = vm_allocate(mach_task_self(), (vm_address_t *)&addr,
data.length(), true);
if(err == 0)
{
//err = vm_write(mach_task_self(), (vm_address_t)addr,
//(vm_address_t)(char*)data, data.length());
memcpy(addr, (char*)data, data.length());
if(err == 0)
dyld_err =
NSCreateObjectFileImageFromMemory(addr, data.length(), &img);
// error is NSObjectFileImageFailure
}
img 变量为空(错误为 NSObjectFileImageFailure)。为什么?
谢谢。
【问题讨论】:
标签: macos cocoa bundle macos-carbon core-foundation