2011
|
Qt / Общие вопросы / Re: Сохранение файла на диск C
|
: Июль 21, 2014, 12:44
|
почитал про uac. Это ж получается, что программа может быть с правами администратора либо полностью, либо вообще нет. То есть, нельзя дать админские права на одну функцию, саму функцию нужно выносить в отдельную программу. Я правильно понимаю?
|
|
|
2012
|
Программирование / Общий / Re: Ошибка компоновщика
|
: Июль 21, 2014, 11:14
|
Такая штука обычно, если пытаешься сишные заголовочные файлы к плюсовому проекту подключить. Попробуй так: C++ (Qt) #ifdef __cplusplus extern "C" { #endif // здесь заголовочные файлы #ifdef __cplusplus extern "C" { #endif
Да, проблема оказалась во мне. Я пытался в одном проекте совместить файлы .c и .cpp. Не знал, что так делать нельзя. P.S.: дошёл до этого сам, потом прочитал Ваше сообщение
|
|
|
2013
|
Программирование / Общий / Re: Ошибка компоновщика
|
: Июль 21, 2014, 10:52
|
Решил! Для нормальной компиляции проекта понадобилось перед употреблением #include <glut.h> написать #define _STDCALL_SUPPORTED #define _M_IX86 ИсточникЭто мнение оказалось ошибочным. Настоящая проблема оказалась такая: Когда у меня файл с расширением .c, то всё компонуется на ура, а когда я его переименовываю в .cpp, то "привет, проблема". Я так понимаю, что нужно искать какую-то директиву препроцессора? Или в какую сторону копать?
|
|
|
2015
|
Программирование / С/C++ / Re: Итераторы в последовательных контейнерах
|
: Июль 20, 2014, 09:08
|
Я проверил по скорости исполнения оба кода и получил, что второй, без использования stl алгоритмов, работает в 25 раз быстрее, хоть выводит информации больше.
Можно ли основываясь на этом сделать вывод, что использование stl алгоритмов пагубно влияет на скорость исполнения?
|
|
|
2020
|
Программирование / С/C++ / Итераторы в последовательных контейнерах
|
: Июль 18, 2014, 14:58
|
Всем доброго времени суток! Последнее время я больше нацелен не только на результат выполнения определённых операций, но и на скорость их выполнения. В связи с этим, меня стал интересовать вопрос использования итераторов. Использование итераторов в ассоциативных контейнерах для меня выглядит как способ быстрого прохода по значениям контейнера. В последовательных же контейнерах у меня непонятки. Меня интересует проход по значениям. Раньше я без зазрения совести использовал конструкцию for (int i = 0; i < vec.size(); i++) // или для каждого третьего элемента i += 3 { ... vec.at(i); ... } Сточки зрения читабельности для меня этот вариант был удобен. Сейчас же меня заинтересовала работа с итераторами, но я плохо себе представляю для чего они нужны в последовательных контейнерах, если существует указатель на начало массива данных. В интернете я нашёл, что итератор позволяет модифицировать объекты контейнера без влияния на сам итератор. Но, ведь при модифицировании контейнера можно поменять и указатель... Объясните, пожалуйста, тёмному человеку преимущества итераторов. Также интересует скорость работы с итераторами и с указателями.
|
|
|
2021
|
Программирование / Алгоритмы / Re: Методы сохранения настроек
|
: Июль 18, 2014, 12:45
|
Но тогда и добавление нового параметра превращается в головную боль - сделать константу, запилить её в 2 функции/или же добавить в словарь с ссылкой на переменную.
Я придумал словарь использовать ещё и потому, что можно прикрутить ещё один словарь, который будет указывать, как обрабатывать переменную, чтобы в функциях save/load обрабатывать параметры тупо в цикле
|
|
|
2022
|
Программирование / Алгоритмы / Re: Методы сохранения настроек
|
: Июль 18, 2014, 12:43
|
Что бы не ошибиться можно задать ключики через константы: C++ (Qt) static const QString keyWindowPos = "window/pos"; static const QString keyWindowSize = "window/size";
и использовать их. Тогда и ide будет помогать, а если все таки в написании ошибетесь, то и компилятор по рукам даст. Тоже интересный вариант, мне кажется
|
|
|
2023
|
Программирование / Алгоритмы / Re: Методы сохранения настроек
|
: Июль 18, 2014, 11:12
|
У меня лично работает система "не бей лежачего". Программулина небольшая парсит файл, выбирает из него переменные и я потом выбираю которые сериализовать После выбора она тупо переписывает ф-ции save/loadSettings. Конечно она не совершенна, но мне хватает PS словарик хорошо, но что то мне в нём не нравится В смысле, имеется некоторый файл с настройками, который превращается в код чтения/записи настроек? В моём случае это не очень удобно будет, наверное. Ну от такого не застрахован никто, тут ктрл+с, ктрл+в вам в помощь.
Да, именно так я и делаю. Но, когда у меня был проект с большим количеством настроек, меня это почему-то раздражало . Видимо, потому что лень было крутить колёсико мыши туда-сюда. А с перечислением, особенно если его загнать в какой-нибудь namespace, мне кажется, что будет кодирование немного проще. Всплывающие подсказки сделают всё сами за тебя. И не нужно будет выводить код в два окна, прокручивать его часами. Но, быть может, я и ошибаюсь
|
|
|
2024
|
Программирование / Алгоритмы / Re: Методы сохранения настроек
|
: Июль 18, 2014, 11:02
|
Я не понял, что именно делается автоматически. Мне почему-то очень не нравится это дублирование. Видимо из-за какого-нибудь возможного (см. код) QPoint ApplicationSettings::GetWindowPos() const { return settings->value("mainwindOw/pos", QPoint(0, 0)).toPoint(); }
void ApplicationSettings::SetWindowPos(const QPoint& p) { settings->setValue("mainwind0w/pos", p); }
|
|
|
2025
|
Программирование / Алгоритмы / Методы сохранения настроек
|
: Июль 18, 2014, 10:40
|
Доброго времени суток! Я решил задаться вопросом, как правильно работать с QSettings. Имеются две функции saveSettings и loadSettings. В каждой я вручную прописываю, наименование параметра, который необходимо получить или сохранить. То есть, происходит некоторое дублирование имён параметров. Причём иногда могу опечататься и программа будет сохранять под одним именем, а запрашивать параметр под другим.
Сейчас есть идея создать какое-нибудь перечисление (enum {val1, val2}) и словарь над выше указанными функциями. А в самих функциях уже подставлять именно словарь(перечисление). Таким образом и добавлять новые параметры, и редактировать старые будет эффективнее.
Хотел узнать мнения других участников. Как Вы работаете с настройками?
|
|
|
|
|