Mac 动态链接库的使用


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


‍‍

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值