无法访问Mac APP Bundle中的文件

时间:2014-09-21 19:20:20

标签: macos osx-mavericks wxwidgets

我在Mac OSX上使用wxwidget并且无法让我的应用程序在我的应用程序包中访问我的资源。

我的资源文件夹中有一个文件名image.bmp,并通过以下方式访问它:

    m_bitmap1 = new wxStaticBitmap( this, wxID_ANY, wxBitmap( wxT("Resources/image.bmp"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );

我的应用程序在该文件上大喊:“找不到文件错误”。我也试过./Resource,或者只是image.bmp,但似乎没什么用。

查看应用程序文件,我可以在那里看到该文件。但由于一些奇怪的原因,它似乎忽略了它。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

默认情况下,wxOSX只会从资源中加载PNG和JPEG位图,因此我建议您将位图转换为PNG并在ctor中使用wxBITMAP_TYPE_PNG_RESOURCE。您还需要删除显式的“Resources /”,因为在您的bundle的这个目录下自动查找路径。即推荐的解决方案是使用wxBitmap("image.png", wxBITMAP_TYPE_PNG_RESOURCE)

请注意,如果您使用RCDATA类型将PNG嵌入资源,这也可以在Windows下运行,如wxBITMAP_PNG() documentation中所述。对于其他平台,您需要将其直接嵌入到程序代码中,这也在同一链接中进行了解释。

否则,即如果您确实想要使用BMP,则需要使用wxStandardPaths::GetResourcesDir()明确构建位图的完整路径。