我如何获得argv [0]?

时间:2012-12-10 15:14:38

标签: c++ objective-c cocoa

在C ++中,我最终得到的应用程序路径没有应用程序名称:

 std::string dir = dirname(argv[0]);

它没有任何问题,但当我计划使用可可时,它说:

错误:'argv'未在此范围内声明,现在我迷路了,我尝试过:

NSArray *args = [[NSProcessInfo processInfo] arguments];

std::string dir = dirname(args);

但没有运气,请帮帮我们!

ps:我已经将文件从.m更改为.mm,以防您想知道

2 个答案:

答案 0 :(得分:3)

以下是获取应用路径的方法:

[[NSBundle mainBundle] bundlePath];

答案 1 :(得分:2)

而不是说

std::string dir = dirname(args);

尝试以下方法:

NSArray *args = [[NSProcessInfo processInfo] arguments];
NSString* arg0 = args[0];
std::string dir = dirname([arg0 fileSystemRepresentation]);

希望有所帮助