看帖无数,综合各帖,加上自己研究终于出来了。
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.编译运行查看结果