Явно Устанавливайте Имя Приложения: SetAppName

July 18th, 2008 Begemot Posted in Программирование

При тестировании новой версии программы, наткнулся на странное поведение. Если Cпереименовать .ехе – она забывает все свои настройки. Казалось бы странно, а на самом деле доку читать надо было внимательнее.

Настройки я храню, в конфиг файле

dataPath = wxStandardPaths().GetUserDataDir() + wxFileName::GetPathSeparator(); //стандартная папка с данным /application data/..

Но GetUserDataDir возвращает папку основываясь на AppName. Если вы не задаете его явно, то это имя ехе файла…

В принципе можно считать это бонусом:) Просто переименовав ехе, пользователь может получить две работающие копии с разными настройками и\или обойти запрет на запуск 2 экземпляров.

Но если это вам не надо, возьмите за правило в самом-самом начале программы использовать:
[sourcecode language=’cpp’]
SetAppName(wxT(“YourAppName”)); //before GetUserDataDir()
SetVendorName(wxT(“YourVendorName”));

[/sourcecode]

Как бонус потом можете использовать в коде wxGetApp().GetAppName(), wxGetApp().GetVendorName() , повышая переносимость кода.

Related:

Comments are closed.