| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT] Строка в динамической библиотеке |
| Автор: Kalifriki 6.2.2010, 22:44 |
| Доброго времени суток. Проблема такая: Я создал динамическую библиотеку, с единственной функцией, которая возвращает QString. В своей программе подключаю эту библиотеку и вызываю этот метод. Если строка в библиотека набрана английскими символами все нормально, но если в строке есть русские символы - начинаются проблемы, при вызове этой функции получаю кракозябры. Как это можно исправить? И получать из библиотеки нормальные русские символы? Заранее спасибо. |
| Автор: KADABRA 7.2.2010, 01:05 |
Система, компилятор, кодировка файла, системная локаль? |
| Автор: borisbn 7.2.2010, 09:02 | ||
В самом начале программы в main.cpp после создания QApplication вставь строку
Если у тебя другая кодировка (utf-8 или ещё какая-нибудь), то в ковычках надо указать её имя (список есть в описани QTextCodec). P.S. Вообще-то это не связано с dll-кой. Такой же результат будет если ты просто напишешь функцию, возвращающую QString в основной программе. P.P.S. Если ты используешь функцию tr для интернационализации, то нужно вызывать не setCodecForCStrings, а setCodecForTr. Я обычно вызываю их обе |