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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамическая списочная структура, содержащая объекты классов, связанных наследованием http://www.cyberforum.ru/cpp/thread1564885.html
В общем. Есть базовый класс и 2 класса наследника. Нужно создать динамическую структуру(пусть это будет односвязный список) в который можно добавлять или удалять объекты любого из 3-х классов. Я сделал односвязный список в который можно добавлять базовый класс. Но вот как реализовать возможность хранения в одном списке различных классов? #include <stdio.h> #include <iostream> #include...
C++ WinAPI Реализовать взаимодействие между процессами с помощью сигналов Программная Реализация Между процессами с помощью сигналов на языке С\С++ http://www.cyberforum.ru/cpp/thread1563515.html
Как найти расстояние между 2 линиями (OpenCV)? C++
Доброго времени Суток! у меня следующий вопрос. я с камеры получаю картинку с помщью OPENCV, и с помощью функций Canny и ROI получаю следующий результат. как можно, или можно ли вообще расчитать расстояние(pixel) между двумя краями(Линиями)? буду очень признателен за помощь
C++ Протестируйте функцию сортировки контейнера
У set контейнера странная сортировка, решил написать функцию которая увеличивала на одну единицу значение вектора. Вектор выступает как "виртуальное целое число". Так как стандартный обход char от 0 до -128 и увеличить переменную со значением -128 приведет что переменная будет равна 0. А сортировка у set контейнера от -128 до 127. Вопрос правильно ли работает моя функция. Я просто не знаю как...
C++ Поиск фигуры на картинке http://www.cyberforum.ru/cpp/thread1563162.html
Суть задания: В окне программы рисуется фигура (треугольник или прямоугольник). При нажатии на кнопку "Go", в верхнем левом углу окна программы появляется объект (допустим в виде квдратика) у которого есть направление сканирования (хз как это еще описать). Он должен: 1. Найти фигуру (которую мы нарисовали в начале). 2. Приблизится впритык к фигуре. 3. Полностью обойти фигуру. 4. Выдать...
C++ Ссылка для скачивания visual studio 2010 professional В интернете постоянно, когда скачиваю visual studio 2010 professional rus выходит при установке образ жесткого диска, но так никогда не было когда скачивала раньше. Старая установка исчезла из-за переустановки винды. Может кто-нибудь поможет мне, скинет ссылку для скачивания нормальной visual studio 2010 professional rus x64bit. мне именно нужна 2010..а не новые 2013, 2015г подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт CЭксперт С++
12798 / 7258 / 809
Регистрация: 27.09.2012
Сообщений: 17,927
Записей в блоге: 2
Завершенные тесты: 1

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

29.10.2015, 00:27. Просмотров 813. Ответов 30
Метки (Все метки)

Есть строка Glib::ustring, пытался её конвертировать в sf::String, и вроде бы всё работает без особых костылей, но как добрался до кириллицы, нифига ничего не работает.
Придумал такой костыль:
C++
1
2
3
4
5
6
7
sf::String convert_from_ustring (const Glib::ustring& source_string) 
{
    static std::wstringstream ss ;
    ss.clear() ;
    ss << source_string ;
    return sf::String(ss.str()) ;
}
У кого есть винда (под Linux'ами вроде пашет, но тоже лучше потестить) с соответствующими библиотеками (sfml и glibmm) просьба протестировать этот код:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <fstream>
#include <sstream>
#include <SFML/Graphics.hpp>
#include <glibmm.h>
 
 
namespace sfml_tools
{
    //TODO: multithread version
    sf::String convert_from_ustring (const Glib::ustring& source_string)
    {
        static std::wstringstream ss ;
        ss.clear() ;
        ss << source_string ;
        return sf::String(ss.str()) ;
    }
}
 
 
 
 
int main()
{
    using sfml_tools::convert_from_ustring ;
    //std::locale::global(std::locale("ru_RU.UTF-8"));
    std::ifstream file("input.txt") ; //Файл в кодировке utf-8 с русским текстом
    if ( !file.is_open() )
        return -1 ;
 
    std::string line ;
    std::getline ( file , line ) ;
 
    Glib::ustring u_str(line);
    sf::String s( convert_from_ustring(u_str) ) ;
 
    sf::RenderWindow wnd( sf::VideoMode( 800 , 600 ) , "SFML-tools library tests" ) ;
    wnd.setTitle(s);
 
    sf::Font fnt ;
    //Свой шрифт, поддерживающий кириллицу, поставьте
    if ( !fnt.loadFromFile("UbuntuMono-B.ttf") ) {
        return -1 ;
    }
 
    sf::Text txt ( s , fnt , 16 )  ;
    txt.setColor(sf::Color::White);
 
    while( wnd.isOpen() ){
        sf::Event event ;
        while( wnd.pollEvent( event ) ){
            if( event.type == sf::Event::Closed )
                wnd.close() ;
        }
        wnd.clear( sf::Color::Black ) ;
        wnd.draw(txt) ;
        wnd.display() ;
    }
}
Здесь цепочка преобразований std::string -> Glib::ustring -> sf::String.
Нормально ли выводится заголовок и текст в окне.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru