Russian Qt Forum

Qt => Общие вопросы => Тема начата: Martiro от Октябрь 29, 2010, 09:19



Название: Перевести QString в char*
Отправлено: Martiro от Октябрь 29, 2010, 09:19
Есть фукция в библиотеке:
Код
C
extern "C" MY_EXPORT int runCalcByMAP(TParamDesc & st, char * mapName);
, где TParamDesc - некая структура, а mapName - путь к файлу.
Начинаю ее вызывать. Принимаю в качестве пути к файлу QString из диалога.
Пытаюсь конвертить его в char*
Код
C
QString MapName;
//...
char * mapName = 0;
mapName = (char *)(MapName.data()->toAscii());
И ничего не выходит.
Ради интереса пытался тупо в лоб прописать
Код
C
mapName = "c:\moscow\moscow.map";
убираются все слэши.  ???

Qt 4, WinXP.


Название: Re: Перевести QString в char*
Отправлено: kuzulis от Октябрь 29, 2010, 09:31
Нужно писать двойные слеши в пути, т.е.
Код:
mapName = "c:\\moscow\\moscow.map";


Название: Re: Перевести QString в char*
Отправлено: merke от Октябрь 29, 2010, 09:36
 QString str1 = "Test";
 QByteArray ba = str1.toLatin1();
 const char *c_str2 = ba.data();


Название: Re: Перевести QString в char*
Отправлено: pastor от Октябрь 29, 2010, 13:35
const char *c_str2 = ba.constData();


Название: Re: Перевести QString в char*
Отправлено: Martiro от Октябрь 29, 2010, 14:17
Благодарю! Вариант Александра тоже работает. =)