Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамическая списочная структура, содержащая объекты классов, связанных наследованием http://www.cyberforum.ru/cpp/thread1564885.html
В общем. Есть базовый класс и 2 класса наследника. Нужно создать динамическую структуру(пусть это будет односвязный список) в который можно добавлять или удалять объекты любого из 3-х классов. Я...
C++ Протестируйте функцию сортировки контейнера У set контейнера странная сортировка, решил написать функцию которая увеличивала на одну единицу значение вектора. Вектор выступает как "виртуальное целое число". Так как стандартный обход char от 0... http://www.cyberforum.ru/cpp/thread1563232.html
C++ Поиск фигуры на картинке
Суть задания: В окне программы рисуется фигура (треугольник или прямоугольник). При нажатии на кнопку "Go", в верхнем левом углу окна программы появляется объект (допустим в виде квдратика) у...
C++ Ссылка для скачивания visual studio 2010 professional
В интернете постоянно, когда скачиваю visual studio 2010 professional rus выходит при установке образ жесткого диска, но так никогда не было когда скачивала раньше. Старая установка исчезла из-за...
C++ Парсинг файлов .dem http://www.cyberforum.ru/cpp/thread1562489.html
Приветствую, ребята, в инете что-то не могу найти инфу по этому вопросу, в частности нужна структура файла .dem (это демо контры, халвы и т.п. подобных проектов h2l) Если кто знаком - киньте ссылки...
C++ Управление памятью другой программы Добрый день. Необходим постоянно устанавливать значение переменной в другой запущенной программе в 0. Ну это понятно, что значение надо менять в цикле, с задержкой ( Sleep(int) ). Суть не в этом.... подробнее

Показать сообщение отдельно
Croessmah
Эксперт CЭксперт С++
13514 / 7673 / 866
Регистрация: 27.09.2012
Сообщений: 18,891
Записей в блоге: 3
Завершенные тесты: 1
29.10.2015, 02:32  [ТС]
Еще такой вариант у меня работает:
C++
1
sf::String s( sf::String::fromUtf32(u_str.begin(),u_str.end()) ) ;//Или fromUtf16. Варианты очень хреновые
Добавлено через 43 минуты
Сделал так, если кому будет интересно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
namespace
{
    class ucs4_string_wrapper
    {
    public:
        ucs4_string_wrapper (const Glib::ustring & source_string)
            : m_data (nullptr)
            , m_wc(0)
        {
            m_data = g_utf8_to_ucs4_fast(source_string.data(), source_string.bytes(), &m_wc) ;
        }
        ~ucs4_string_wrapper()
        {
            g_free(m_data) ;
        }
        const gunichar * data() const
        {
            return m_data ;
        }
    private:
        ucs4_string_wrapper (const ucs4_string_wrapper&) = delete ;
        ucs4_string_wrapper & operator=(const ucs4_string_wrapper&) = delete ;
        gunichar * m_data ;
        glong m_wc ;
    };
}
 
 
namespace sfml_tools
{
    sf::String convert_from_ustring (const Glib::ustring& source_string)
    {
        ucs4_string_wrapper usc4_str (source_string) ;
        return sf::String ( static_cast<const sf::Uint32*>(usc4_str.data()) ) ;
    }
}
 
//...
 
sf::String s(convert_from_ustring(u_str)) ;
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru