iOSプラットフォームの静的ライブラリで現在のプロセス情報を取得
1493 ワード
Objective-CはNSProcessInfoというクラスを提供して現在のAPPプロセス情報を取得するが、私たちの静的ライブラリはpure C++エンジニアリングである.では、どのようにしてcppでObjective-Cを呼び出しますか?この問題はC++とObjective-Cの混成にかかわる.プロセス情報を取得する関数 はios_process_info.mmファイルでNSProcessInfoを呼び出すことで実現する関数 在.cppファイル中の ios_process_info.h
ios_process_info.mm
xxx.cpp
int ios_process_name(char* buf, int len);
をios_に宣言します.process_info.hファイル中ios_process_name
include "ios_process_info.h"
、呼び出し関数ios_process_name
//
// ios_process_info.h
// libEasyRTSPClient
//
// Created by 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 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