Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - CurrenDir

Ответить
Настройки темы
C/C++ - CurrenDir

Пользователь


Сообщения: 56
Благодарности: 0

Профиль | Отправить PM | Цитировать


Нужно узнать папку, с которой запускается приложение, после подставить это значение для запуска других файлов
для того, что б узнать текущюю папку использую
ExtractFilePath (Application ->ExeName)
но как после того как узнал папку подставить двойные слеши - для запуска других файлов?

Отправлено: 23:57, 13-03-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


null999, не нужно. Если у Вашего файла такое требование — в гробу я видал «…у белых тапках» такой подход к программированию. Не должно существовать таких ограничений у приложений.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:01, 14-03-2017 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Цитата null999:
файл и нужно запускать строго с того каталога, в котором находится »
Такой подход приемлем только для файлов конфигураций и портативных программ!

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Отправлено: 21:57, 14-03-2017 | #12


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата opel431:
Такой подход приемлем только для файлов конфигураций и портативных программ! »
Не, в этом случае всё как раз-таки нормально: просто используется вариант «откуда бы не запустили приложение — конфигурацию смотрим по месторасположению исполняемого файла». А вот именно что требования «запускать исполняемый файл токмо отсель, и не иначе» — ни разу не встречал.

Отправлено: 23:58, 14-03-2017 | #13


Пользователь


Сообщения: 56
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, но будет ли этот плохой метод работать, если его запустят с другого пути, но папка и подпапки останутся те же ?

Отправлено: 11:30, 15-03-2017 | #14


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


null999, не смог осмыслить вопрос.

Отправлено: 19:29, 15-03-2017 | #15


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Код: Выделить весь код
#ifndef UNICODE
  #define UNICODE
#endif

#include <windows.h>
#include <cstdio>
#include <string>
#include <cstring>

void PrintWin32Error(void) {
  HLOCAL msg;
  FormatMessage(
      FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
      NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
      (LPWSTR) &msg, 0, NULL
  );
  wprintf(L"%s", msg);
  LocalFree(msg);
}

int wmain(void) {
  std::wstring path(L"", MAX_PATH);

  if (0 == GetModuleFileName(NULL, (LPWSTR)path.c_str(), MAX_PATH)) {
    PrintWin32Error();
    return -1;
  }

  path = path.substr(0, path.find_last_of(L"\\/"));
  wprintf(L"Executable path    : %s\n", path);
  wprintf(L"Some another path1 : %s\n", path + L"\\file1.txt");
  wprintf(L"Some another path2 : %s\n", path + L"\\file2.exe");

  return 0;
}

Отправлено: 09:44, 16-03-2017 | #16



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - CurrenDir

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено




 
Переход