在C ++中,我最终得到的应用程序路径没有应用程序名称:
std::string dir = dirname(argv[0]);
它没有任何问题,但当我计划使用可可时,它说:
错误:'argv'未在此范围内声明,现在我迷路了,我尝试过:
NSArray *args = [[NSProcessInfo processInfo] arguments];
std::string dir = dirname(args);
但没有运气,请帮帮我们!
ps:我已经将文件从.m更改为.mm,以防您想知道
答案 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]);
希望有所帮助