Название: QString в char* Отправлено: Авварон от Май 12, 2009, 18:49 как адекватно перевести QString в сишный массив чаров? Способов куча, но полученный массив нужно скормить функции ldap_initialize(LDAP*, char*). Проблема в том, что на экран выводится всё верно в любом из способов, а вот функции нравится только конвертация через std::string
То есть такой код работает: Код: QString str("ldap://localhost/"); Название: Re: QString в char* Отправлено: pastor от Май 12, 2009, 19:34 Код
Название: Re: QString в char* Отправлено: Авварон от Май 12, 2009, 19:50 ага, проблема я так понял в том, что ф-ии конвертации возвращают объект, лежащий в стеке и после присвоения стек благополучно сворачивается, удаляя указатель... Кстати мой пример всё-таки не работает:)
Название: Re: QString в char* Отправлено: pastor от Июнь 19, 2009, 10:21 Разобрался что не работало?
Название: Re: QString в char* Отправлено: Авварон от Июнь 19, 2009, 10:45 говорю же - временный объект (значение toLocal8Bit()) удалялся после вычисления выражения, снося char*, сохраненный во временную переменную, своим деструктором. Спасибо за помощь
Название: Re: QString в char* Отправлено: fuCtor от Июнь 24, 2009, 08:55 Кусок:
>> str.toLocal8Bit().constData() Можно заменить на: qPrintable(str). Название: Re: QString в char* Отправлено: kuzulis от Июнь 24, 2009, 10:07 А вот к примеру иная задачка: нужно из char* в QString преобразовать строку.. но получается ерунда какаят:
Код: .... выводит: Цитировать D:\projects\QSerialDevice_24062009_1700\examples\devices>release\default.exe "retval : 17" \Device\Serial0 "" Название: Re: QString в char* Отправлено: Rcus от Июнь 24, 2009, 10:17 fromAscii, fromLocal8Bit, fromUtf8 - статические методы класса QString
Название: Re: QString в char* Отправлено: kuzulis от Июнь 24, 2009, 11:40 И??
Название: Re: QString в char* Отправлено: Авварон от Июнь 24, 2009, 12:44 str.fromAscii(res); заменить на str = QString::fromAscii(res);
Название: Re: QString в char* Отправлено: Белый пони от Июль 02, 2010, 15:06 У мня не получается так. Вот кусок кода:
Вот кусок кода: Код: QString str = m_ui->lineFName->text(); Потом char* FileName использую для открытия файла: Код: ofstream myfile; Но вместо этого появляются файлы, с совершенно не читаемыми названиями. Пробовал вместо toLocal8Bit - toAscii , toLatin1, toUtf8. Ничо не помогает:( Чо делать? Название: Re: QString в char* Отправлено: Гурман от Июль 02, 2010, 15:12 Код: extern openFile( char* fileName ); так понятно? то есть, преобразовывать из QString в char* в самый последний момент, не таскать везде указатель char* Название: Re: QString в char* Отправлено: Белый пони от Июль 02, 2010, 15:41 Код: extern openFile( char* fileName ); так понятно? то есть, преобразовывать из QString в char* в самый последний момент, не таскать везде указатель char* Спасибо! Заработало :) Я правда пока не понял, почему он на передваемый char* ругался, но теперь всё окей ;D Название: Re: QString в char* Отправлено: Гурман от Июль 02, 2010, 15:51 Цитировать Я правда пока не понял, почему он на передваемый char* ругался там несколько бредовых моментов было, из-за ненужного использования QByteArray |