ios .mm文件调用c语言函数报错,在苹果iOS平台中获取当前程序进程的进程名等信息...
本文由EasyDarwin开源团队成员Penggy供稿;Objective-C 提供 NSProcessInfo 这个类来获取当前 APP 进程信息, 然而我们的静态库是 pure C++ 工程. 那么如何在 cpp 中调用 Objective-C 呢 ? 这个问题涉及 C++ 和 Objective-C 混编.我们把获取进程信息的函数int ios_process_name(char* buf,
本文由EasyDarwin开源团队成员Penggy供稿;
Objective-C 提供 NSProcessInfo 这个类来获取当前 APP 进程信息, 然而我们的静态库是 pure C++ 工程. 那么如何在 cpp 中调用 Objective-C 呢 ? 这个问题涉及 C++ 和 Objective-C 混编.
我们把获取进程信息的函数int ios_process_name(char* buf, int len);声明在 ios_process_info.h 文件中
在 ios_process_info.mm 文件中通过调用 NSProcessInfo 实现函数ios_process_name
在 .cpp 文件中 include "ios_process_info.h", 调用函数 ios_process_name
ios_process_info.h
//
// ios_process_info.h
// libEasyRTSPClient
//
// Created by Penggy on 16/9/20.
// Copyright © 2016年 org.easydarwin. All rights reserved.
//
#ifndef ios_process_info_h
#define ios_process_info_h
int ios_process_name(char* buf, int len);
#endif /* ios_process_info_h */
ios_process_info.mm
//
// ios_process_info.m
// libEasyRTSPClient
//
// Created by Penggy on 16/9/20.
// Copyright © 2016年 org.easydarwin. All rights reserved.
//
#import
#import
#import "ios_process_info.h"
int ios_process_name(char* buf, int len){
NSString *pname = [[NSProcessInfo processInfo] processName];
if(!pname){
return -1;
}
strncpy(buf,[pname UTF8String],len-1);
buf[len-1] = 0;
return 0;
}
xxx.cpp
#ifdef __MACH__
#include "ios_process_info.h"
int ret = ios_process_name(szProcName, sizeof(szProcName));
#else
//TODO 其它平台获取当前进程名称
#endif
获取更多信息
Copyright © EasyDarwin.org 2012-2016
没有苹果电脑打包iOS平台的 Ionic 2程序——《Ionic 2 实例开发》更新内容
没有苹果电脑打包iOS平台的 Ionic 2程序--更新内容春节刚过,祝各位新的一年里万事如意,一帆风顺.在这段时间里更 ...
Android中获取应用程序(包)的大小-----PackageManager的使用(二)
通过第一部分<>的介绍,对PackageManager以及 AndroidMani ...
IOS开发中如何判断程序第一次启动(根据判断结果决定是否显示新手操作引导)
IOS开发中如何判断程序第一次启动 在软件下载安装完成后,第一次启动往往需要显示一个新手操作引导,来告诉用户怎么操作这个app,这就需要在程序一开始运行就判断程序是否第一次启动,如果是,则显示新手操作 ...
如何在不同的语言/平台中获取Android ID
如何在不同的语言/平台中获取Android ID 最近开发工作中需要使用到AndroidID,在Unity和native code中也需要使用,java获取很方便,Unity中也不难,最难的是在nat ...
如何用Python在豆瓣中获取自己喜欢的TOP N电影信息
一.什么是 Python Python (蟒蛇)是一门简单易学. 优雅健壮. 功能强大. 面向对象的解释型脚本语言.具有 20+ 年发展历史, 成熟稳定. 具有丰富和强大的类库支持日常应用. 1989 ...
iOS开发中获取WiFi相关信息
iOS 开发中难免会遇到很多与网络方面的判断,这里做个汇总,大多可能是与WiFi相关的. 1.Ping域名.Ping某IP 有 时候可能会遇到ping 某个域名或者ip通不通,再做下一步操作.这里的p ...
iOS 平台开发OpenGL ES程序注意事项
本人最近从Android平台的OpenGL ES开发转到iOS平台的OpenGL ES开发,由于平台不同,所以开发中会有一些区别,再次列出需要注意的几点. 1.首先需要了解iOS主要开发框架,再次仅介 ...
【转】如何开发苹果iOS操作平台下的应用程序?
原文网址:http://zhidao.baidu.com/link?url=vxRWjCchSstFmVKvxEqLqfqomu2h5kF-NLAIVEehQgN_FnYtEi4f5yPMS6ywbU ...
Android中获取应用程序(包)的信息----PackageManager
本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagena ...
随机推荐
【转】ios的控件UIScrollView的位置定位---------逐渐积累
原文网址:http://blog.csdn.net/z343929897/article/details/8106408 UIScrollView的判断位置的属性如下: contentSize:C ...
(easy)LeetCode 205.Reverse Linked List
Reverse a singly linked list. 解法一:记录单链表每个节点的val,然后重新为单链表赋值.(取巧,仅仅是将val部分改变,原始node节点并没有改变) 代码如下: /** ...
MySQL 5.7.9多源复制报错修复
版本:5.7.9 用5.7.9的版本搭建MySQL多源复制测试环境 开发说复制出现问题,上去看了一下: mysql> show slave status\G******************* ...
c#基础编程—泛型
一.引言 泛型的主要思想是将算法与数据结构完全分离开,使得一次定义的算法能作用于多种数据结构,从而实现高度可重用的开发.泛型,通过参数类型化来实现在同一份代码中操作多种数据类型,利用“参数化类型”将类 ...
hibernate学习(二)
hibernate 单向一对多映射 一.数据表设计 数据库名:hibernate5 数据表: ①表名:CUSTOMERS 字段: CUSTOMER_ID CUSTOMER_NAME ②表名:ORDE ...
第二节windows系统下Xshell 5软件远程访问虚拟机 Linux系统
下载Xshell 5软件在windows下安装 安装好后Xshell 5启动软件 下一步,检查虚拟机,配置是否正确 下一步,设置网络,保障虚拟机系统能够连接网络 下一步,进入虚拟机系统,检查虚拟机网络 ...
vijos1080题解
题目: 对于一个递归函数w(a,b,c) 如果a<=0 or b<=0 or c<=0就返回值1. 如果a>20 or b>20 or c>20就返回w(20,20 ...
Java中Set的contains()方法
Java中Set的contains()方法 -- hashCode与equals方法的约定及重写原则 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashCode() a ...
2018/12/21:Date类
1.Date类 getDate()返回一个月的某一天 1-31 getDay()返回一周的某一天 getFullyear()返回四位数的年份 getMonth()返回月份 比实际情况小 1 0代表1月 ...
vmware workstations下安装CentOS7
vm虚拟机上安装CentOS7参考博文: https://www.cnblogs.com/wcwen1990/p/7630545.html 最小化安装后,没有ifconfig等命令的解决方法参考博文: ...
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)