Название: Изменение значений QDir::currentPath() Отправлено: ruzik от Май 20, 2012, 11:49 Здравствуйте, у меня есть, скажем, такой код:
Код: label->setText(QApplication::applicationFilePath()); label = C:/Program files/ProgramName/program.exe label_2 = C:/Program files/ProgramName То есть все правильно. Далее я добавляю программу в автозагрузку, путем добавления её в реестр(OS = Windows 7) И при старте программы получаю следующие результаты: label = C:/Program files/ProgramName/program.exe label_2 = C:/Windows/system32 То есть почему-то QDir::currentPath() возвращает системный путь, хотя само приложение осталось на своем месте. В справке сказано: Цитировать QString QDir::currentPath () [static] То есть должен вернуться вот такой путь: C:/Program files/ProgramNameReturns the absolute path of the application's current directory. Я знаю как можно обойти эту проблему, но вопрос: Так должно быть или это моя ошибка? Название: Re: Изменение значений QDir::currentPath() Отправлено: V1KT0P от Май 20, 2012, 11:57 Да так и должно быть. Именно поэтому существует функция QApplication::applicationDirPath().
Смысл вот этого: Цитировать Returns the absolute path of the application's current directory. Не в том что оно возвращает текущую директорию в котором лежит приложение. А текущую директорию приложения, что есть две большие разницы. Тоже-самое запусти программу из QtCreator-а, он тоже текущую директорию меняет(по крайней мере в теневом режиме на один уровень вверх).Название: Re: Изменение значений QDir::currentPath() Отправлено: ruzik от Май 20, 2012, 14:09 Понятно, спасибо за разъяснение
Название: Re: Изменение значений QDir::currentPath() Отправлено: Странник от Май 21, 2012, 02:10 QDir::currentPath() возвращает т.н. рабочую директорию. она совпадает с директорией, в которой лежит приложение, если не указано иного (в параметрах ярлыка, или при запуске из консоли).
|