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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: русский язык и QSharedMemory  (Прочитано 5003 раз)
THRESHE
Гость
« : Сентябрь 12, 2008, 14:21 »

Всем привет!

У меня такая проблема - я использую разделяемую память для передачи пути файла между процессами и получаю его из argv
Код:
	QStringList params = arguments();
if (params.size()>1)
{
QString message;
params.removeAt(0);
for (int i = 0; i != params.size(); i++)
message.append(params[i] + ";");

qDebug()<<message;
sharedMem_->lock();
char* from = new char[message.size() + 1];
strcpy(from, message.toUtf8().data());
char *to = (char*)sharedMem_->data();
memcpy(to, from, qMin(sharedMem_->size(), (int)strlen(from)));
sharedMem_->unlock();
}
При наличии русских символов получаю тарабарщину
Если так
Код:
		QString message = QString::fromUtf8(*(argv+1));
тоже самое  Непонимающий
Записан
ритт
Гость
« Ответ #1 : Сентябрь 12, 2008, 15:07 »

Код:
char* from = new char[message.size() + 1];
strcpy(from, message.toUtf8().data());
буффер создаешь под message, а копируешь в него message.toUtf8()

если венда, то попробуй QString::fromLocal8Bit()
arguments() - это что?
Записан
THRESHE
Гость
« Ответ #2 : Сентябрь 13, 2008, 17:17 »

Спасибо за ответ  Улыбающийся
Я как только написал вопрос тут же нашел решение. Часто так бывает... Действительно если вместо toUtf8 поставить toLocal8Bit все работает
arguments() это функция qApp->arguments()
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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