Как при открытии файла получить ссылку на него?

119
10 января 2021, 16:20

У меня в проекте на C++ есть возможность сохранять изменённые данные в файл, но есть проблема, когда я открываю не саму программу, а ее файл, то мне нужно считывать все, что в нем находится. Как получить ссылку (C://.../*.tst), при открытии файла по клику на него.

Answer 1

Если тип файлов ассоциирован с вашей программой (это можно установить в вручную: правый клик по файлу -> Открыть с помощью -> Выбрать программу), то при нажатии на файл запустится ваша программа. Вторым аргументом командной строки будет путь к файлу.

Получить этот аргумент можно двумя способами. Если у вас консольная программа, то параметр argv[1] в функции main() будет содержать ссылку на файл. Если же у вас программа с графическим интерфейсом и включен режим UNICODE, то используйте функции GetCommandLineW and CommandLineToArgvW:

LPWSTR *szArglist;
int nArgs;
szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
// Здесь szArglist[1] будет содержать путь к файлу

Если вы хотите программно ассоциировать расширение файла с вашей программой, то это более сложно, уточните вопрос.

READ ALSO
Как включить Z-буфер (OpenGL 3.3)?

Как включить Z-буфер (OpenGL 3.3)?

Где предположительно может быть ошибка? После создания окна (sf::RenderWindow) и контекста, перед главным циклом отрисовки прописал

84
Активация элемента в дереве

Активация элемента в дереве

В QAbstractItemView есть сигнал activated который генерируется если произошло нажатие на элементНа этот сигнал у меня подвешен слот onItemActivated:

114
Переменная SetTimeout Jquery

Переменная SetTimeout Jquery

Каким образом можно задать переменную в 1400 миллисекунд для setTimeout и вызвать ее а не прописывать каждый раз для разных функций setTimeout = 1400

131