0

*.sym 形式のチャートに母音をマップする Qt プロジェクトに取り組んでいます。

私の目標は、このような初期 IPA チャートをロードすることです。

ファイルが*.symあり、アプリケーションの起動後にそれらをロードできますが、実行可能ファイルがどこで実行されているのかよくわかりません。

このようなディレクトリ形式(ビルド後)があります

Project
|_ Source
|_ Build
  |_ Source
    |_ Charts
      |_ load_at_start.sym
    |_ Project.app
      |_ Contents
        |_ MacOS
          |_ Project (executable)

これにより、fopen 呼び出しの使用が非常に難しくなります。fopen は現在の作業ディレクトリを実行可能ファイルが置かれた場所と見なすと想定していたので、次のようなことを試しました...

    FILE *stream = fopen("./../../../charts/load_at_start.sym", "r");

しかし、うまくいきません。誰でも私を助けることができますか?

4

1 に答える 1

0

.sym ファイルがアプリ バンドル (.app ディレクトリ) 内、具体的には Contents/Resources の下にあることを確認する必要があります。

次に、QCoreApplication::applicationDirPathを使用してアプリケーションのディレクトリを取得し (例: "/Applications/Project.app/Contents/MacOS/")、ファイルへの相対パスを追加します (例: "../Resources/charts/load_at_start")。 .sym")。

このようなもの:

QDir dir(QCoreApplication::applicationDirPath());
dir.cd("../Resources/charts");
FILE* stream = fopen(dir.filePath("load_at_start.sym").toUtf8().constData());

C の代わりに Qt の I/O 機能を使用することを検討することもできます。

于 2014-11-14T10:50:21.827 に答える