Как получить surce dir? Topic is solved
Как получить surce dir?
Как получить в строке имя текущей директории из которой запускается программа?
-
- Super wx Problem Solver
- Posts: 401
- Joined: Wed Sep 21, 2005 8:17 am
- Location: Rostov-on-Don, Southern Russia
Re: Как получить surce dir?
midisa wrote:Как получить в строке имя текущей директории из которой запускается программа?
http://docs.wxwidgets.org/2.8.11/wx_wxdir.html
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
-
- Super wx Problem Solver
- Posts: 362
- Joined: Wed Mar 07, 2007 8:10 am
- Location: Russia, Shakhty
Вот что мне ответил на тот же вопрос t_Rex ссылу что-то не найду
ага вот http://forums.wxwidgets.org/viewtopic.p ... etapp+argv
Code: Select all
class MyApp : public wxApp
{
};
...
DECLARE_APP(MyApp); // Декларирование функции wxGetApp()
...
wxString app_filename = wxGetApp().argv[0];
wxString app_path = wxPathOnly(wxGetApp().argv[0]);
Last edited by borr_1 on Sat Jul 31, 2010 9:16 am, edited 1 time in total.
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse
-
- Super wx Problem Solver
- Posts: 401
- Joined: Wed Sep 21, 2005 8:17 am
- Location: Rostov-on-Don, Southern Russia
Есть стандартная функцияborr_1 wrote:Вот что мне ответил на тот же вопрос t_Rex ссылу что-то не найдуCode: Select all
class MyApp : public wxApp { }; ... DECLARE_APP(MyApp); // Декларирование функции wxGetApp() ... wxString app_filename = wxGetApp().argv[0]; wxString app_path = wxPathOnly(wxGetApp().argv[0]);
wxDir::GetName
wxString GetName() const
Returns the name of the directory itself. The returned string does not have the trailing path separator (slash or backslash).
http://docs.wxwidgets.org/2.8.11/wx_wxd ... dirgetname
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
-
- Super wx Problem Solver
- Posts: 401
- Joined: Wed Sep 21, 2005 8:17 am
- Location: Rostov-on-Don, Southern Russia
Ну судя по документам - да, но я сделал так:borr_1 wrote:И что она вернет директорию где лежит командный файл приложения?
тогда уже wxStandardPaths::GetDataDir надо пробовать.
Code: Select all
wxString name = wxGetCwd();
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
-
- Super wx Problem Solver
- Posts: 401
- Joined: Wed Sep 21, 2005 8:17 am
- Location: Rostov-on-Don, Southern Russia
С GetName код больше.... а результат тот же....
Code: Select all
void MainFrame::OnButnOKClick( wxCommandEvent& event )
{
wxDir dir;
wxString name;
if ( dir.Open(wxGetCwd()) )
{
name = dir.GetName();
m_staticText->SetLabel(name);
}
else
m_staticText->SetLabel(wxT("Не могу открыть директорию"));
}
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
-
- Super wx Problem Solver
- Posts: 401
- Joined: Wed Sep 21, 2005 8:17 am
- Location: Rostov-on-Don, Southern Russia
Не, она вернет, глобальную директорию стандартных каталогов программ. т.е. usr/local/share В винде повидимому Program Filesborr_1 wrote: тогда уже wxStandardPaths::GetDataDir надо пробовать.
А для того, что бы вернуть фактическую директорию (например, из рабочего каталога с проектами) можно использовать wxStandardPaths::GetExecutablePath()
Code: Select all
wxStandardPaths dir;
m_staticText->SetLabel(dir.GetExecutablePath());
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
1. Так решенных вопросов НЕТ. Есть вопросы, а ответы в воздухе висят. Из всех вопросов только один был закрыт. + этот ещеborr_1 wrote:midisa я конечно не модератор и это не мое дело... но как говорится пешеход тоже участник. Ты ветку помечать как решенную будешь или нет и не только эту. И не промахнись с accepted answer он наверно у Mojo за 31-е число.
2. Как помечать что тему закрываем? После закрытия они куда деваются? Мне лично мои темы нужны как справочные материалы. Я их неоднократно просматриваю т.к. в голове ничего не держу.