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 に答える