Получение относительных путей в пакете Mac .app - PullRequest
1 голос
/ 18 сентября 2011

Я разработал игру на C ++, OpenGL и OpenAL и пытаюсь встроить ее в комплект приложений, а не в исполняемый файл командной строки. Я скопировал и вставил код из Относительные пути, не работающие в Xcode C ++ вверху моего файла main.cpp (также попробовал его в App_Prefix.pch), и я получил ряд синтаксических ошибок. Я аннотировал код с ошибками:

#ifdef __APPLE__
#include "CoreFoundation/CoreFoundation.h"
#endif

// ----------------------------------------------------------------------------
// This makes relative paths work in C++ in Xcode by changing directory to the Resources folder inside the .app bundle
#ifdef __APPLE__    
    CFBundleRef mainBundle = CFBundleGetMainBundle();
    CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(mainBundle);
    char path[PATH_MAX];
    if (!CFURLGetFileSystemRepresentation(resourcesURL, TRUE, (UInt8 *)path, PATH_MAX)) // Error: expected unqualified-id before 'if'
    {
        // error!
    }
    CFRelease(resourcesURL); // error: expected constructor, destructor or type conversion before '(' token

    chdir(path); // error: expected constructor, destructor or type conversion before '(' token
    std::cout << "Current Path: " << path << std::endl; // error: expected constructor, destructor or type conversion before '<<' token
#endif

Его код мне подходит, и многие люди поблагодарили его за это в своем посте. Что-то я делаю не так? Должен ли я создать файл специально для этого кода и импортировать его прежде всего?

1 Ответ

3 голосов
/ 18 сентября 2011

Ваш код должен быть внутри функции, например main().В настоящее время ваш код вставляется на уровне файлов.Вы не можете иметь if оператор или вызов функции там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...