Всем привет, мне нужно узнать программно где лежат файл программы.
Это делается так если включена консоль.
#include<string>
#include<Windows.h>
using namespace std;
void main(int argc, char*argv[])
{
//Получить текущую деректорию
//TCHAR buffer[MAX_PATH];
//GetCurrentDirectory(sizeof(buffer),buffer);
//cout << buffer << endl;
if(argc > 0)
{
//получаим путь к програме
string urlK = "";
urlK += argv[0];
//удаляем всё до слеша (название програмы)
while(urlK.size() > 0) { bool br = 0;if(urlK[urlK.size()-1] == '/' || urlK[urlK.size()-1] == '\\'){br = 1;}
urlK.erase(urlK.size()-1); if(br)break; }
//устанавливаем путь к каталогу с программой как основной
SetCurrentDirectory(urlK.c_str());
}
return;
}
Вот элемент массива что содержат путь к нужному файлу. argv[0]
Проблема появляться если в проекте отключить консоль, тогда путь определяет совсем не тот что нужно.
Подскажите как получить путь к файлу если консоль отключена.
Без внешних библиотек по возможности (не верю что стандартных нет)
C++ vs 2010
Также хотелось бы узнать как называется система когда на окно перетаскивают файлы и программа определит их пути, (хочу задать по теме вопрос но без названия не получиться)
Это делается через GetModuleFileName()
, в качестве хэндла нужно указать NULL.
В новом стандарте (C++17) появилась такая возможность (На основе boost/filesystem) получение пути: std::filesystem::current_path
. Вот ссылка. Думаю, что уже можно активно ее использовать. А вот на счет наличие новых стандартов в msvs 2010 не знаю. Лучше же переходить на более новые. Либо лайвхаки по использованию нового SDK для старых версий.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Дан одномерный массивНайти количество различных чисел в этом массиве, используя функцию сортировки
Пишу оконное приложение на Embarcadero C++ Builder XE7, ОС Windows 7В нем при запуске главной формы создается, но сразу не запускается поток
Всем привет, надо разложить число на множители(определенные)С маленькими числами все работает