NSBundle *mainBundle将hex文件放入app资源库

首先将hex文件放到工程文件中,在object-C升级的线程中使用NSBundle *mainBundle将hex文件复制到app的资源库中,所在的位置为:app-显示包内容-Contents-Resources,在.cpp中写一个函数将object-C绑定的路径传到.cpp中,因为在.cpp中升级及读取hex版本号时也需要这个路径。这样不管用户将app放在哪个文件夹下,在读取的时候都会去app所在的资源库中去读取hex文件。

用到的函数及定义:

char    GetNativePath[300];//数组中存放的是hex文件的路径

char    *apGetNativePath =GetNativePath;

constchar *HMDhexpath;//Object-C中绑定到资源库的hex文件路径

void GetHexPath(constchar *str){

      HMDhexpath = str;

}


方法1:将hex路径转化成URL,再将URL转为NSString,再将NSString转为char,这种转化后路径会比真实路径多7个字符,file://+真实路径,在将这个路径传给GetNativePath数组(总长度为300)时需要将这前七个字符截取掉

strncpy(GetNativePath,HMDhexpath+7, 280);//方法1

路径:file:///Users/Develop/Library/Developer/Xcode/DerivedData/XXXcqyacwywhttktwcrchmqhlpkohky/Build/Products/Debug/XXX.app/Contents/Resources/DIS01_STMF205_HMD_APP.hex


    NSURL*pathUrl = [[NSBundle mainBundle]URLForResource:@"DIS01_STMF205_HMD_APP"    withExtension:@"hex"subdirectory:nil];

    NSString*urlStr = pathUrl.absoluteString;

constchar *hexpath = [urlStrcStringUsingEncoding:NSUTF8StringEncoding];//转化出来只能是const类型

GetHexPath(hexpath);//将绑定hexpath路径通GetHexPath传到.cpp文件中去

 

方法2:hexpath为真实路径,直接传给GetNativePath,无需截取

    strncpy(GetNativePath,HMDhexpath, 300);//方法2

  路径:              /Users/Develop/Library/Developer/Xcode/DerivedData/XXXcqyacwywhttktwcrchmqhlpkohky/Build/Products/Debug/XXX.app/Contents/Resources/DIS01_STMF205_HMD_APP.hex

     */

    

NSBundle*mainBundle = [NSBundlemainBundle];

    NSString*imagePath = [mainBundle pathForResource:@"DIS01_STMF205_HMD_APP"ofType:@"hex"];

    constchar *hexpath = [imagePathcStringUsingEncoding:NSUTF8StringEncoding];//转化出来只能是const类型

 GetHexPath(hexpath);

GetHexPath .cpp 中的函数,在 object-C 将生成的路径传给了HMDhex path 这个指针
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值