Здравствуйте, гость ( Вход | Регистрация )
Iron Bug | Дата 1.10.2010, 13:37 |
да нет, у меня прекрасно всё получалось и с русскими буквами. просто надо поднимать старые проекты, а без кода нечего обсуждать. а буст староват, мягко говоря. лучше бы обновить до 41 или 44 (наиболее свежие и наименее глючные версии). |
|
madnessw | Дата 1.10.2010, 10:04 |
windows 7 , VS2008 + QT 4.6.1 + boost 1.38)) до этого некто не догодался тэстировать с русскими буквами)) код чуть позже скину) |
|
Iron Bug | Дата 1.10.2010, 9:58 |
проверь локали на машине, если это линюкс. может банально не быть нужной локали. проверь опции юникода для компилера. если не оно, то пиши пример, как конкретно ты сериализуешь и чем собираешь. |
|
madnessw | Дата 27.9.2010, 9:36 |
Вышел интересный Баг в сериализации wstring : у меня boost отказывается сериализовать wstring который содержит русские буквы..... Может кто сталкивался с добной проблеммой? |
|
madnessw | Дата 18.3.2010, 5:24 |
Как всегда всё оказалось проще чем я дкмал))) Почитав кучу доки я в boost нашол макрос BOOST_SERIALIZATION_BASE_OBJECT_NVP мне нужно было заюзать макрос ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Items) и вуаля всё заработало))) Насчёт стрельбы по воробьям из пушки: у буста она сильно точно стреляет и велосипеды у них хорошие , много функциональные)))) на этом тему можно считать закрытой)))) Iron Bug - спасибо за участие |
|
Iron Bug | Дата 16.3.2010, 10:26 |
имхо, в такой ситуации лучше бы сделать синглтон, который работает непосредственно с конфигурацией, а в нём реализовать список элементов и сквозные массивы указателей на них (boost::intrusive). ведь конфигурация - это обычно не то, что постоянно меняется и меняется неожиданно из разных мест. городить сериализацию тэмплейтов - дело неблагодарное. а главное - из пушки по воробьям |
|
madnessw | Дата 16.3.2010, 4:23 |
эо пример класса конфигурации есть несколько деревьев Item может находиться сразу в нескольких деревьяк(у нас они называются измерения) я думал сначало сохранять всё в поток но понял что пытаюсь написать велосипед тк в бусте сериализация позволяет сохранять в бинарник в текст и в поток) вот и думаю как это сделать))) по сути мне нужно сохранить список всех итемов и указателей а при загрузке востановить всё это дело в пямяти) |
|
Iron Bug | Дата 14.3.2010, 17:34 |
я не совсем понимаю, нафига сериализовать такие сложные аггломераты, но люди пишут, что даже такой изврат возможен. учимся пользоваться гуглом и в поиске по строке "boost serialization shared_ptr" находим вот это: http://www.boost.org/doc/libs/1_42_0/libs/...shared_ptr.html дальше читать всё это и усваивать. но я бы не стала связываться с такими наворотами. да и автор статьи не рекомендует этого делать, ибо даже после всей этой возни остаются некоторые нерешённые вопросы. а вообще, зачем тебе столько наворотов для сохранения в файл? может, всё куда проще решается, нежели чем через такие пампасы? конечно, если хочешь, ковыряй статью, пиши кучу кода. это не возбраняется. но что-то мне подсказывает, что есть куда более простое решение для задачи, которую ты пытаешься решить. |
|
madnessw | Дата 13.3.2010, 18:15 |
с wstring я разобрался в опциях прроекта переходим: Configuration properties -> C++ -> Langages->Treast wchar_t as Built-in type = <inherit from parent or project defaults> и усё работает ))))))) теперь осталось только одно понять как сериализовать конструкцию типа List<shared_ptr<Item>> pItemList , где Item - класс, а проще как сериализовать список умных указателей на класс? Iron Bug - спасибо за совет) |
|
Iron Bug | Дата 12.3.2010, 18:10 |
Буст поддерживает сериализацию wstring. Вроде бы он для этого должен быть скомпилен с ICU, хотя конкретно насчёт библиотеки сериализации точно не могу сказать, может, ей просто опцию какую-то надо указать при сборке. У меня буст собран с ICU и все юникодовские функции работают. Но не все комилеры поддерживают юникод. Например, mingw его не поддерживает. Юзай wofstream и binary_woarchive, если компилятор позволяет. Если нет - то переводи в string и сериализуй как string, а потом обратно. Либо как бинарный поток. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.1.2025, 3:47 |