现在的位置: 首页 > 综合 > 正文

Mac 动态链接库的使用

2013年02月28日 ⁄ 综合 ⁄ 共 857字 ⁄ 字号 评论关闭


看帖无数,综合各帖,加上自己研究终于出来了。

‍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.编译运行查看结果


‍‍

抱歉!评论已关闭.