看帖无数,综合各帖,加上自己研究终于出来了。
1.构建需要构建的 .dylib工程
添加方法
Person.h
@interface Person : NSObject {
}
float converount(float amt ,float rate);
Person.m
#import "Person.h"
@implementation Person
#define EXPORT __attribute__((visibility("default")))
EXPORT
float converount(float amt ,float rate)
{
return (amt+rate);
}
@end
2.构建调用的工程,普通工程就好啦
Test.m
#import <Foundation/Foundation.h> #include <dlfcn.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); NSString *dylibPath = @"/Users/zhoubl/Desktop/guod.dylib"; NSLog(@"dylibPath %@",dylibPath); char * path = (char *)[dylibPath cStringUsingEncoding:RTLD_NOW]; void * lib_handle = dlopen(path,1); float (*convertAmout)(float , float) = dlsym(lib_handle, "converount"); int rate = 5; int amt = 2; if (convertAmout) { float total = convertAmout(rate,amt); NSLog(@"%f",total); } else { NSLog(@"Sorry!"); } } return 0; }
4.编译运行查看结果