本文由EasyDarwin开源团队成员Penggy供稿;

Objective-C 提供 NSProcessInfo 这个类来获取当前 APP 进程信息, 然而我们的静态库是 pure C++ 工程. 那么如何在 cpp 中调用 Objective-C 呢 ? 这个问题涉及 C++ 和 Objective-C 混编.

  1. 我们把获取进程信息的函数int ios_process_name(char* buf, int len);声明在 ios_process_info.h 文件中
  2. 在 ios_process_info.mm 文件中通过调用 NSProcessInfo 实现函数ios_process_name
  3. 在 .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 <Foundation/Foundation.h>
#import <Foundation/NSProcessInfo.h>
#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

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2016

在苹果iOS平台中获取当前程序进程的进程名等信息的更多相关文章

  1. 没有苹果电脑打包iOS平台的 Ionic 2程序——《Ionic 2 实例开发》更新内容

    没有苹果电脑打包iOS平台的 Ionic 2程序--<Ionic 2 实例开发>更新内容春节刚过,祝各位新的一年里万事如意,一帆风顺.<Ionic 2 实例开发>在这段时间里更 ...

  2. Android中获取应用程序(包)的大小-----PackageManager的使用(二)

    通过第一部分<<Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及 AndroidMani ...

  3. IOS开发中如何判断程序第一次启动(根据判断结果决定是否显示新手操作引导)

    IOS开发中如何判断程序第一次启动 在软件下载安装完成后,第一次启动往往需要显示一个新手操作引导,来告诉用户怎么操作这个app,这就需要在程序一开始运行就判断程序是否第一次启动,如果是,则显示新手操作 ...

  4. 如何在不同的语言/平台中获取Android ID

    如何在不同的语言/平台中获取Android ID 最近开发工作中需要使用到AndroidID,在Unity和native code中也需要使用,java获取很方便,Unity中也不难,最难的是在nat ...

  5. 如何用Python在豆瓣中获取自己喜欢的TOP N电影信息

    一.什么是 Python Python (蟒蛇)是一门简单易学. 优雅健壮. 功能强大. 面向对象的解释型脚本语言.具有 20+ 年发展历史, 成熟稳定. 具有丰富和强大的类库支持日常应用. 1989 ...

  6. iOS开发中获取WiFi相关信息

    iOS 开发中难免会遇到很多与网络方面的判断,这里做个汇总,大多可能是与WiFi相关的. 1.Ping域名.Ping某IP 有 时候可能会遇到ping 某个域名或者ip通不通,再做下一步操作.这里的p ...

  7. iOS 平台开发OpenGL ES程序注意事项

    本人最近从Android平台的OpenGL ES开发转到iOS平台的OpenGL ES开发,由于平台不同,所以开发中会有一些区别,再次列出需要注意的几点. 1.首先需要了解iOS主要开发框架,再次仅介 ...

  8. 【转】如何开发苹果iOS操作平台下的应用程序?

    原文网址:http://zhidao.baidu.com/link?url=vxRWjCchSstFmVKvxEqLqfqomu2h5kF-NLAIVEehQgN_FnYtEi4f5yPMS6ywbU ...

  9. Android中获取应用程序(包)的信息----PackageManager

    本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下:   第一部分: 获取应用程序的packagena ...

随机推荐

  1. 【BZOJ1101】Zap(莫比乌斯反演)

    题意:多组询问,对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d. T,a,b,d,x,y<=50000 思路:下底函数分块+积性函数 ...

  2. Enable and Use Remote Commands in Windows PowerShell

    The Windows PowerShell remoting features are supported by the WS-Management protocol and the Windows ...

  3. 模仿世纪佳缘网站PC端的首页效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 【Linux】多进程与多线程之间的区别

    http://blog.csdn.net/byrsongqq/article/details/6339240 网络编程中设计并发服务器,使用多进程与多线程 ,请问有什么区别?  答案一: 1,进程:子 ...

  5. 关于Xcode6.0.1创建项目不自动创建Prefix.pch文件的解决办法

    1. 新建工程 2. 创建pch文件: 新建文件->Other->PCH File  新建一个pch文件 3. 在setting里面进行设置: 项目配置->Build Setting ...

  6. Yii使用find findAll查找出指定字段的实现方法

    Yii使用find findAll查找出指定字段的实现方法,非常实用的技巧,需要的朋友可以参考下. 用过Yii的朋友都知道,采用如下方法: 查看代码   打印 1 modelName::model() ...

  7. Adoquery的 moveby和GotoBookmark,RecNo

    GotoBookmark 是必须存在的记录,再次返回原来那个记录的位置,但是原来的那个记录必须存在,所以不适合[删除订单后回到原来的位置],因为原来的订单已经不存在了,删除了, moveby(),从当 ...

  8. Codefroces Gym101572 I.Import Spaghetti-有向图跑最小环输出路径(Floyd)

    暑假学的很多东西,现在都忘了,补这道题还要重新学一下floyd,有点难过,我暑假学的东西呢??? 好了,淡定,开始写题解. 这个题我是真的很难过啊,输入简直是有毒啊(内心已经画圈诅咒出题人无数次了.. ...

  9. 2017 [六省联考] T1 期末考试

    4868: [Shoi2017]期末考试 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 842  Solved: 385[Submit][Status ...

  10. java三角形和菱形的打印

    一.三角形的打印 package 向家康; import java.util.Scanner; public class Main { public void san(int num) { for(i ...