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

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос про const  (Прочитано 2611 раз)
CJ1
Гость
« : Июнь 21, 2012, 11:34 »

Вобще я вот эту тупую фишку ни понимаю.
пишу
Код:
 QString s = " mysqldump.exe -u"+seting.value("LoginMySql","root").toString()+" -P"+seting.value("PortMySQL","3306").toString()+" -h"+seting.value("hostMySql").toString()+" -p"+seting.value("PassMySql").toString()+ " "+seting.value("BDMySql").toString()+ " > dump2.txt";
m_process->write(s);


Вот почему нельзя написать сюда s

это же полный бред
Функция write описана как
Код:
inline qint64 write(const QByteArray &data)

Тоесть когда мы вставляем параметр с указанием const это значит что эта функция не может менять эти параметры.
Так какого же хрена мой код дает ошибку, нет, так конечно всегда у меня было, но сейчас это уже бесит! Хочу в этом разобраться по подробнее
Записан
mutineer
Гость
« Ответ #1 : Июнь 21, 2012, 11:35 »

Может потому, что функция хочет QByteArray, а ты ей даешь QString?
Записан
CJ1
Гость
« Ответ #2 : Июнь 21, 2012, 11:36 »

Не, ну можно конечно и так сделать
Код:
    QByteArray a;
    QDataStream in(&a,QIODevice::WriteOnly);
    QSettings seting("ServerBD","Net");
    in << " mysqldump.exe -u"+seting.value("LoginMySql","root").toString()+" -P"+seting.value("PortMySQL","3306").toString()+" -h"+seting.value("hostMySql").toString()+" -p"+seting.value("PassMySql").toString()+ " "+seting.value("BDMySql").toString()+ " > dump2.txt";
 m_process->write(a);

Но где логика и смысл?
Записан
mutineer
Гость
« Ответ #3 : Июнь 21, 2012, 11:37 »

Логика в том, что функция хочет один тип, а ты ей даешь другой, что явно неправильно. У QString есть несколько методов, дающих QByteArray, пользуйся ими
Записан
CJ1
Гость
« Ответ #4 : Июнь 21, 2012, 11:38 »

Ошибся, эта функция описана как

Код:
inline qint64 write(const char * data)
Записан
mutineer
Гость
« Ответ #5 : Июнь 21, 2012, 11:38 »

Ошибся, эта функция описана как

Код:
inline qint64 write(const char * data)

Тогда, блин, ей тем более нельзя давать QString!! const тут вообще не причем
« Последнее редактирование: Июнь 21, 2012, 11:41 от mutineer » Записан
CJ1
Гость
« Ответ #6 : Июнь 21, 2012, 11:43 »

Да.... я просто забыл блин написать s.toAnsii()

Точно! Неугледел.....

Ну всеравно... подобные случаи мне встречались........ я позже опишу
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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