Откройте файл.app

Я работаю над проектом Qt, который отображает гласные на диаграмму в формате *.sym.

Моя цель состоит в том, чтобы загрузить начальную диаграмму 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");

но это не работает Может кто-нибудь мне помочь?

1 ответ

Решение

Вы должны убедиться, что файл.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());

Хотя вы можете рассмотреть возможность использования средств ввода / вывода Qt вместо C.

Другие вопросы по тегам