Мне нужно использовать kIOSurfaceWidth
в моем коде для захвата снимка экрана, но для Apple удалил PrivateFrameworks
из iOS 9.3, поэтому я должен загружать IOSurface.frameworks
динамически во время выполнения. Я использую код, как показано ниже, но возвращаю не null его после dlsym
, но когда я пытаюсь установить NSLog
значение kIOSurfaceWidth
, он сработает. Может ли кто-нибудь мне помочь?Что не так с моим кодом для динамического получения констант с dlsym в jailbroken iOS?
static CFStringRef _kIOSurfaceWidth;
static void load()
{
void* handle = dlopen("/System/Library/PrivateFrameworks/IOSurface.framework/IOSurface", RTLD_LAZY);
_kIOSurfaceWidth = dlsym(RTLD_DEFAULT, "kIOSurfaceWidth");
if (!_kIOSurfaceWidth) LOG_GENERAL(@">>>>>>>> _kIOSurfaceWidth is NULL");
else NSLOG(@"_kIOSurfaceWidth is %@", (NSString *)CFBridgingRelease(_kIOSurfaceWidth));
}