1

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

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

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

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

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

std::string dir = dirname(args);

但没有任何运气,请帮帮我!

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

4

2 回答 2

3

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

[[NSBundle mainBundle] bundlePath];
于 2012-12-10T15:36:44.500 回答
2

而不是说

std::string dir = dirname(args);

尝试以下操作:

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

希望有帮助

于 2012-12-10T15:27:39.597 回答