为什么相对路径不起作用?

时间:2013-05-20 06:27:17

标签: c++ xcode sdl

我正在尝试Xcode 4.6中的SDL项目。我按照HERE的说明进行操作,一切都很顺利。我甚至在那里运行了测试代码。

现在我尝试加载BMP

SDL_Surface* bmp = SDL_LoadBMP("cb.bmp");

它说无法加载bmp。但如果我使用 Absoulte路径,它就可以正常工作。

有什么问题?我该怎么做才能使用相对路径?

文件夹结构如下:

sdl_test
    sdl_test.xcodeproj
    sdl_test
        cb.bmp
        SDLMain.m
        SDLMain.h
        main.cpp
        sdl_test.1

1 个答案:

答案 0 :(得分:0)

当我开始使用Xcode时,我遇到了同样的问题。

您必须在SDLMain.m文件中更改工作区。找到setupWorkingDirectory方法,并将其替换为:

/* Set the working directory to the .app's parent directory */
- (void) setupWorkingDirectory:(BOOL)shouldChdir
{ 
    //setting the working directoy to MyApp.app/Contents/Resources/  
    NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
    [[NSFileManager defaultManager] changeCurrentDirectoryPath:resourcePath];

}

希望这有效。