Russian Qt Forum
Май 07, 2024, 13:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 2 [3] 4 5 ... 137
31  Программирование / С/C++ / Re: MSVC 2015 чудит: float -> double : Июнь 27, 2018, 14:54
GCC в Ubuntu 16.04 работает нормально, d1 и d2 полностью равны
32  Программирование / С/C++ / Re: MSVC 2015 чудит: float -> double : Июнь 27, 2018, 14:24
повторяемость 100%, это не рандом. Вывод в поток верен, т.к. в более полном коде из проекта я ещё сравниваю полученное double значение с нужным мне, и первый double проходит проверку, а второй - нет. На release и release+debug symbols работает одинаково неправильно. Я подозреваю, что проблема с оптимизацией RVO и внутренним представлением float. На 64-бит не воспроизводится вероятно потому, что в 64-бит ошибки float меньше.
33  Программирование / С/C++ / MSVC 2015 чудит: float -> double : Июнь 27, 2018, 12:22
На 32-битной версии MSVC и Qt 5.9.2 наблюдается такой интересный баг... В 64-битной версии такого нет.

Коротко:
Код
C++ (Qt)
   float f1 = QVector2D::dotProduct(v1,v2); // возвращает float
   double d1 = f1;
   double d2 = QVector2D::dotProduct(v1,v2); // повторяем

Результат: Значения d1 и d2 различаются после пятнадцатого знака после запятой, а именно: d1 = 1.00000000000000000000 d2 = 1.00000000000000355271. Какая-то сумасшедшая оптимизация? Никаких своих флагов в .pro файл я не добавлял.

Подлиннее:
Код
C++ (Qt)
#include <QtCore>
#include <QtGui>
 
int main(int argc, char *argv[])
{
   QCoreApplication app(argc, argv);
 
   QTextStream ts(stdout, QIODevice::WriteOnly);
   QVector2D v1(8.10837e-09, -1);
   QVector2D v2(4.45843e-07, -1);
 
   float f1 = QVector2D::dotProduct(v1,v2);
   double d1 = f1;
   double d2 = QVector2D::dotProduct(v1,v2);
 
   ts.setRealNumberNotation(QTextStream::FixedNotation);
   ts.setRealNumberPrecision(20);
   ts
           << v1.x() << " "
           << v1.y() << " "
           << v2.x() << " "
           << v2.y() << " " << endl
           << f1 << " " << d1 << " " << d2 << endl;
   ts.flush();
 
   return 0;
}
 

Выхлоп:

Цитировать
0.00000000810836997545 -1.00000000000000000000 0.00000044584299985218 -1.00000000000000000000
1.00000000000000000000 1.00000000000000000000 1.00000000000000355271 <--- f, d1 и d2


Проверьте пожалуйста на MSVC 2017 и MSVC 2013 в 32-битной версии. Какие есть гипотезы? Улыбающийся
34  Разное / Говорилка / Re: Поплохело виндоус : Июнь 22, 2018, 18:50
имхо, видеокарта либо проц перегреваются.
был подобный опыт...

Похоже проц! Снял, смазал по новой, пока что работает нормально. А я уж что только не думал - SATA массив, и северный мост, и память...
35  Qt / Вопросы новичков / Re: Q_ENUM outside my class : Июнь 22, 2018, 15:00
ты выбрал не тот язык Улыбающийся Автоматически - нельзя.
36  Разное / Говорилка / Re: Поплохело виндоус : Июнь 19, 2018, 23:01
memtest за ночь проблем не выявил. Вот так.  В замешательстве
37  Разное / Говорилка / Re: Поплохело виндоус : Июнь 18, 2018, 18:06
проверил все диски - SMART никаких ошибок не кажет, chkdsk всех дисков показал 0 ошибок.
38  Разное / Говорилка / Re: Поплохело виндоус : Июнь 15, 2018, 10:22
Да у вас главная проблема это винда!
А по теме, советую для начала запустить полную проверку диска с проверкой секторов.

Мне даже больше интересно что это за урезанный режим, в котором всё работает нормально
39  Разное / Говорилка / Re: Поплохело виндоус : Июнь 14, 2018, 15:06
ещё вспухшие конденсаторы на материнской карте могут быть причиной

визуально материнка целая. Ещё и почистил на всякий случай - не помогло Улыбающийся
40  Разное / Говорилка / Поплохело виндоус : Июнь 13, 2018, 19:21
Привет. Система - Windows 7 64-bit. Начались спонтанные перезагрузки и синие экраны. Синие экраны в совершенно разных местах, разных драйверах, то есть никакой закономерности нет. Планки памяти менял/убирал как мог - ноль эффекта. Думаю не память. Причём заметил, что после очередного синего экрана винда загружается в каком-то урезанном режиме (хотя выбирад "Обычная загрузка)", где доступно только половина памяти, и очевидно, урезаны какие-то другие фичи. В этом урезанном режиме всё работает нормально! Что это за режим такой?

Если из него делаю перезагрузку, то винда грузится в "полном" режиме со всей доступной памятью, но жди синего экрана!
41  Qt / Работа с сетью / Re: Как скачать файл через запрос к php : Июнь 11, 2018, 22:25
>Пробую QNetworkAccessManager гетом и тд, но скачивается именно php файл

такого быть не должно. Вероятно неправильно настроен сервер. PHP генерит страницы, и наружу должен отдаваться HTML и JS, а никак не сам PHP.
42  Qt / Установка, сборка, отладка, тестирование / Re: установка Qt на Debian(новичек) : Май 30, 2018, 00:22
а зачем тебе это всё? Ты не понимаешь базовых основ, что ты собрался делать с Qt Creator? Начни с базовых основ Linux. С команд, установки пакетов, запуска программ, описания графической системы. В Ubuntu неплохая документация. Многое подходит и для Debian. То чего там нет ищется в гугле на раз-два.
43  Qt / Работа с сетью / Re: Скороть работы QNetworkAccessManager : Май 21, 2018, 16:42
Ты уверен что проблема НЕ в твоей программе? Для меня очевидно, что при малейшем баге в логике программы идёт накопление ошибки, поэтому со временем и начинает замедляться. Это может быть всё что угодно - "забытый" указатель, лишние "да ладно и так сойдёт" строки кода и т.п.
44  Qt / Вопросы новичков / Re: ПРОСТО ПО-МО-ГИ-ТЕ! Qt Linux usb-cdc : Май 10, 2018, 22:37
А как именно он должен работать? Я когда-то работал со сканерами карт, они же вроде работают как клавиатуры, посылая обычный клавиатурный ввод. Мой сканер я просто подключил к Убунте, открыл leafpad, провёл картой и получил текст.
45  Qt / Общие вопросы / Re: QProcess и консольное приложение : Апрель 23, 2018, 22:52
Цитировать
Я уже говорил тебе,что такое безумие,а? Безумие - это точное повторение одного и того же действия. Раз за разом, в надежде на изменение.

Налицо полное непонимание того, что ты делаешь:

1) скармливаешь сразу все файлы одной строкой для QProcess::start(). Процесс sox, как я уже писал, попытается открыть файл с именем "track01.wav track02.wav Sometrack03.wav", которого естественно нет, и проваливается
2) пытаешься писать в stdin этого процесса с помощью QProcess::write(), хотя sox поддерживает режим записи через stdin совсем по-другому, через спецификацию "-" файла, о чём написано в хелпе -h. Естественно, это не работает
3) скармливаешь Qt-шные пути "D://FolderSox//sox_14_4_2//track01.wav" программе прямо в stdin, хотя она явно не в курсе что такое "//"

Предвижу вопрос типа хватит умничать, просто напиши решение. Пожалуйста, думаю смысл понятен:

Код
C++ (Qt)
int main(int argc, char *argv[])
{
   QCoreApplication app(argc, argv);
 
   QProcess process;
   QStringList strList = { "F:/chimes.wav", "F:/chord.wav", "F:/result.wav" };
   process.start("F:/sox/sox", strList);
 
   if(!process.waitForStarted()) {
       return 1;
   }
 
   if(!process.waitForFinished()) {
       return 2;
   }
 
   return 0;
}
 

Входные файлы - два виндовых wav звука на моём диске F. Выход - result.wav также на моём диске F. Это всё ещё можно сократить ещё больше через QProcess::execute().
Страниц: 1 2 [3] 4 5 ... 137

Страница сгенерирована за 0.119 секунд. Запросов: 23.