Я хочу написать программу на C ++, чтобы получить связанные приложения, которые подходят для открытия указанного файла. Я нахожу LSCopyApplicationURLsForURL API и создаю приложение C ++ для командной строки с помощью XCode.
Но после запуска этой программы я всегда получаю ошибку сегмента. XCode показывает ошибку EXEC_BAD_ACCESS (код = 1, адрес ....).
Я также попытался запустить его из sudo, но результат тот же. В чем проблема?
Код:
#include <iostream>
#include <objc/objc.h>
#include <objc/objc-runtime.h>
#include <CoreFoundation/CoreFoundation.h>
#include <CoreServices/CoreServices.h>
using namespace std;
int main(int argc, const char * argv[]) {
auto url = CFURLRef("file:///Users/efan/src/a.cpp");
auto ret = LSCopyApplicationURLsForURL(url, kLSRolesAll);
cout << ret << endl;
return 0;
}