https://github.com/tsnsoft/dialogblocksfileconf
Пример консольной программы работы с файлом настроек на C++ с использованием wxWidgets и DialogBlocks в Visual Studio 2022
https://github.com/tsnsoft/dialogblocksfileconf
config console file settings visual-studio wxwidgets
Last synced: over 1 year ago
JSON representation
Пример консольной программы работы с файлом настроек на C++ с использованием wxWidgets и DialogBlocks в Visual Studio 2022
- Host: GitHub
- URL: https://github.com/tsnsoft/dialogblocksfileconf
- Owner: tsnsoft
- License: mit
- Created: 2023-12-13T11:39:35.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-10T09:38:58.000Z (over 1 year ago)
- Last Synced: 2025-03-10T10:28:41.899Z (over 1 year ago)
- Topics: config, console, file, settings, visual-studio, wxwidgets
- Language: C++
- Homepage:
- Size: 6.56 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# DialogBlocksFileсonf
Пример консольной программы работы с файлом настроек на C++ с использованием wxWidgets и DialogBlocks в Visual Studio 2022


```
#include
#include
#include
#include
#include
#include
#ifdef __WXMSW__
#include
#include
#endif
class MyApp : public wxApp {
private:
wxLocale m_locale; // Держим локаль в объекте класса
public:
virtual bool OnInit() override {
// Устанавливаем локаль для Unicode
setlocale(LC_ALL, "ru_RU.UTF-8");
m_locale.Init(wxLANGUAGE_RUSSIAN, wxLOCALE_DONT_LOAD_DEFAULT);
wxPuts(L"Работа с файлом настроек");
// Создаем имя файла конфигурации
wxFileName fn(wxStandardPaths::Get().GetExecutablePath());
fn.SetExt("ini");
// Создаем объект конфигурации
auto m_fileconfig = std::make_unique(
wxEmptyString, wxEmptyString, fn.GetFullPath(), wxEmptyString,
wxCONFIG_USE_LOCAL_FILE | wxCONFIG_USE_NO_ESCAPE_CHARACTERS
);
wxConfigBase::Set(m_fileconfig.get());
wxConfigBase* conf = wxConfigBase::Get(false);
if (!conf) {
wxPuts(L"Ошибка: объект конфигурации не создан!");
return false;
}
conf->SetPath(L"/settings");
conf->Write(L"language_ru", L"русский");
conf->SetPath(L"/settings_add");
conf->Write(L"language_en", L"английский");
conf->Write(L"language_de", L"немецкий");
wxPuts(conf->Read(L"language_de", L"de ?"));
wxPuts(conf->Read(L"language_en", L"en ?"));
conf->SetPath(L"/settings");
wxPuts(conf->Read(L"language_ru", L"ru ?"));
m_fileconfig->Flush(); // Сохраняем настройки
wxConfigBase::Set(nullptr); // Очищаем объект конфигурации
// Ожидание ввода без использования system()
wxPuts(L"Нажмите Enter для выхода...");
std::wcin.get();
return false; // Завершаем приложение
}
};
// Определяем точку входа вручную
wxIMPLEMENT_APP_NO_MAIN(MyApp);
int main(int argc, char** argv) {
wxInitializer initializer;
if (!initializer.IsOk()) {
wxPuts(L"Ошибка: wxWidgets не инициализирован!");
return -1;
}
return wxEntry(argc, argv);
}
```
## Ссылки:
http://www.anthemion.co.uk/dialogblocks/
***Бесплатная лицензия на DialogBlocks:*** https://github.com/proffix4/dialogblocks_free
https://www.wxwidgets.org/
https://visualstudio.microsoft.com/ru/vs/community/
http://www.anthemion.co.uk/dialogblocks/ImageBlocks-1.07-Setup.exe