objective-c - 如何通过 dlsym 的方式调用 block 的执行函数?
習慣沉默
習慣沉默 2017-05-02 09:32:20
[iOS讨论组]

#import <UIKit/UIKit.h>

#import <dlfcn.h>

static void (*block_func)(void);

dispatch_block_t block = ^(){

    printf("Hello, World!\n");
};

void test(){
    printf("test invoked\n");
}

int main(int argc, char *argv[]) {

    for (NSInteger i = -2000; i < 2000; i++) {

        block_func = dlsym(i, "test");
        if (block_func) {
            printf("%ld\n", (long)i);
            block_func();
        }

        block_func = dlsym(i, "main_block_invoke");
        if (block_func) {
            printf("%ld\n", (long)i);
            block_func();
        }
    }
}
習慣沉默
習慣沉默

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号