Oberon space

General Category => Общий раздел => Тема начата: ilovb от Май 12, 2013, 08:08:59 am

Название: Собрать IUP
Отправлено: ilovb от Май 12, 2013, 08:08:59 am
http://www.tecgraf.puc-rio.br/iup/

Вчера пол вечера убил, но так и не смог собрать в VS2012. То ошибки вываливает. То dll не хочет собирать. Там еще модная штука для сборки есть http://www.tecgraf.puc-rio.br/tecmake/ но у меня оно совсем не завелось.
Как это сделать? Помогите, плиз.

В скайнтилле ошибка обнаружилась с русским вводом. Сейчас общаюсь с разрабом на эту тему.
Хочу у себя проверить некоторые идеи. Но блин собрать не могу :(
Название: Re: Собрать IUP
Отправлено: valexey_u от Май 12, 2013, 02:24:15 pm
Собрал. Взять исправленный проект можно тут: https://docs.google.com/file/d/0B5S-yO9U6Ec1bE5kVEFHajJKY0U/edit?usp=sharing

Собиралось все MSVS 2012. Соответственно нужно открывать файл iup\mak.vc10\iup.sln (теперь это проект для 2012 студии)

Там можно собрать iup.dll, в этом случае ставим в свойствах проекта iupwin configuration type=dll, а по умолчанию там сейчас собирается iup.lib и  iup_scintilla.dll.
Название: Re: Собрать IUP
Отправлено: ilovb от Май 12, 2013, 02:25:27 pm
Спасибо большое!
Название: Re: Собрать IUP
Отправлено: valexey_u от Май 12, 2013, 02:27:49 pm
Небольшое дополнение - это все делалось для Debug версии. Релиз может и не собраться.
Название: Re: Собрать IUP
Отправлено: ilovb от Май 12, 2013, 02:31:17 pm
Релиз пока не нужен. Это для экспериментов.
Название: Re: Собрать IUP
Отправлено: ilovb от Май 12, 2013, 07:38:53 pm
Полученная dll не взлетела. Чегой-то там еще настраивать нужно.
Но это уже не нужно, т.к. я разобрался в tecmake и с ней все собирается без проблем.
Название: Re: Собрать IUP
Отправлено: ilovb от Май 12, 2013, 07:43:16 pm
Процесс сборки выглядит примерно так:
(http://s2.developerslife.ru/public/images/gifs/1ee540e9-0a3c-4b23-8731-0dc9671cb57b.gif)
Название: Re: Собрать IUP
Отправлено: ilovb от Май 16, 2013, 08:57:00 am
Вопрос знатокам c/c++

В каком случае может происходить следующее:
байт преобразуется по след схеме:
E0 ---> 30
E1 ---> 31
E2 ---> 32
и т.д.

Может преобразование типов приводить к такому?
Название: Re: Собрать IUP
Отправлено: DddIzer от Май 16, 2013, 10:31:24 am
Вопрос знатокам c/c++

В каком случае может происходить следующее:
байт преобразуется по след схеме:
E0 ---> 30
E1 ---> 31
E2 ---> 32
и т.д.

Может преобразование типов приводить к такому?
по идее это
shr(shl(b,2),2) - комбинация сдвигов на 2 позиции , сначала влево , а потом вправо... -может применяться  для обнуления старших битов в байт -маске
Название: Re: Собрать IUP
Отправлено: DddIzer от Май 16, 2013, 10:38:09 am
либо эквивалентная битовая операция с заданной маской
Название: Re: Собрать IUP
Отправлено: DddIzer от Май 16, 2013, 11:34:19 am
где применяется... ну например в наборах чекбоксов.. каждый установленный бит соответствует состоянию "отмечен" некоторого чекбокса(как визуального компонента)...
Название: Re: Собрать IUP
Отправлено: ilovb от Май 16, 2013, 11:39:19 am
Тут проблема такая: https://www.youtube.com/watch?v=BaTDVDiGM20

Если набрать "абвгд" то получится "01234"
Т.е. где-то при обработке ввода херятся байтики.
Название: Re: Собрать IUP
Отправлено: DddIzer от Май 16, 2013, 11:53:21 am
при обработке ввода или отображении? с чем по умолчанию работает IUP -с 2 байтным юникодом, или UTF-8?  попробуйте установить романскую (французкую) локаль и вывести строку в ней..
Название: Re: Собрать IUP
Отправлено: ilovb от Май 16, 2013, 11:59:09 am
IUP с юникодом вообще не работает. Там 1251 кодировка.
Отображение работает. Там же видно в видео
Название: Re: Собрать IUP
Отправлено: DddIzer от Май 16, 2013, 12:12:48 pm
IUP с юникодом вообще не работает. Там 1251 кодировка.
Отображение работает. Там же видно в видео
установите другую локаль (французскую , убедитесь что шрифт поддерживает ее ) и проверьте, если все ок, то нужно копать дальше, если не получилось.. то вы не полностью что-то инициализировали..), и потом судя по всему у вас вызывается внешний редактор (сайнтиловский) - может там есть какие то особенности?.
Название: Re: Собрать IUP
Отправлено: DddIzer от Май 16, 2013, 12:17:11 pm
а лучше португальскую локаль (там есть диакритические знаки  Á, Â, Ã, À, Ç, É...).. уж о правильности ввода в родной кодировке создатели точно озаботились...
Название: Re: Собрать IUP
Отправлено: ilovb от Май 16, 2013, 12:24:21 pm
Инициализировано все правильно. Там явно бага. Разработчик в курсе.
Название: Re: Собрать IUP
Отправлено: ilovb от Май 17, 2013, 12:54:40 pm
Победил. Венда посылает символы окну в юникоде, а скайнтилла думает что они однобайтные и берет только младший байт.
Убрал проверку юникодности окна и все заработало.
Написал разрабу об этом.
Название: Re: Собрать IUP
Отправлено: ilovb от Май 22, 2013, 09:49:59 pm
http://forum.oberoncore.ru/viewtopic.php?f=28&t=4356&p=80286#p80286
Цитата: ilovb
Пришло письмо от разработчика:
Цитировать
Hi,
 
 Just committed to the CVS a new KEYSUNICODE attribute for IupScintilla on Windows. It will set the keysAlwaysUnicode variable to TRUE.

...

Best,
Scuri

Проверил. Работает.
Достаточно добавить такую строчку в свой код:
Iup.SetAttribute(sci, "KEYSUNICODE", "YES");