如何通过 dlsym 的方式调用 block 的执行函数? 财富值42

2016-10-23 01:17发布

 #import <UIKit/UIKit.h>  #import <dlfcn.h>  static void (*block_func)(void);  dispatch_block_t block = ^(){      printf("Hello, World!
"); };  void test(){     printf("test invoked
"); }  int main(int argc, char *argv[]) {      for (NSInteger i = -2000; i < 2000; i++) {          block_func = dlsym(i, "test");         if (block_func) {             printf("%ld
", (long)i);             block_func();         }          block_func = dlsym(i, "main_block_invoke");         if (block_func) {             printf("%ld
", (long)i);             block_func();         }     } } 
友情提示: 问题已经关闭,关闭后问题禁止继续编辑,回答。