К каждой программе конвертер всегда будут цеплять. Конечно если не сделать его в ядре. А может стоит делать в ядре?... Тогда можно использовать код от FreshLib. Очень компактен получился: encodings.asmSerge wrote:johnfound
Всё же кодировка для текста должна быть единственной. Иначе к каждой программе надо будет цеплять конвертер на все возможные варианты.
Общесистемный буфер обмена
Это же только кириллица. А как насчет остальных языков? Лучше библиотеку, считаю.
Думаю что данный буфер подходящий момент чтобы подправить fn eax=10 eax=11 чтобы они возвращали также и основные параметры событий. Ведь сейчас после ring0->ring3 switch происходит гарантированое и незамедлительное ring3->ring0->ring3
Сообщение(fn eax=10) о заполненом только-для-чтения буфере(ядро создало его нужного размера) приходит. Обработчик сообщения копирует куда ему надо(mov инструкции). И fn eax=10 выполняют чистку (в даном случае удаляют буфер если ctrl+c была кде-то ещё нажата.
Сообщение(fn eax=10) о заполненом только-для-чтения буфере(ядро создало его нужного размера) приходит. Обработчик сообщения копирует куда ему надо(mov инструкции). И fn eax=10 выполняют чистку (в даном случае удаляют буфер если ctrl+c была кде-то ещё нажата.
По-моему, туда еще надо добавить dd custom_type, чтобы получилось:Albom wrote: 1) Поместить данные в буфер. Через структуру.
dd type
dd size
dd address
Code: Select all
dd type
dd custom_type
dd size
dd address
Поле кодировки может заполняться, например, строками '866', 0, или '1251', или 'UTF8', или даже 'Big5' или 'SJIS'. Встанет вопрос о регистре. А можно и числовые коды Windows класть, которые очень продуманны, скажу я вам. Будет преемственность.
Например, кто из вас знает, что числовые значения всяких STD_INPUT и STD_OUTPUT, прописанные в SDK большинства ОС, мало того что совпадают, так еще и не изменились еще со времен перфокарт и терминального вывода на бумажную ленту? Преемственность.
Хорошо для расширяемости.Freeman wrote:По-моему, туда еще надо добавить dd custom_type, чтобы получилось:
А можно и свои числовые коды (0 - 866, 1 - 1251, 2 - utf8, ...) - вполне достаточно. И копировать не придётся.Freeman wrote:А можно и числовые коды Windows класть
Ну, это уже известный спор натуральных ключей против искусственных. Спорить не будем.Albom wrote:А можно и свои числовые коды (0 - 866, 1 - 1251, 2 - utf8, ...) - вполне достаточно.
ilya
Это то же самое о чём я и писал.
Code: Select all
Ядро создаёт буфер и передаёт во владение приложению. Когда буфер будет ненужен приложение освободит его. Такое технически возможно в даный момент?
А ещё когда пользователь выдрал пункт в меню, а ещё когда нажал кнопочку "Скопировать" и т.д. Не надо вводить ненужные ограничения. Ни в одной системе этого нет. Есть устоявшийся набор правил и все их применяют.Нельзя давать право приложению дёргать ф-цию для чтения буфера когда хочет. Только когда пользователь нажал ctrl+c в одном окне и ctrl+v вдругом.
Приложение должно иметь доступ к буферу обмена если пользователь этого захотел. Как ты это собираешся определять?
Иначе приложение прочитает любую инфу не предназначеную для него, по таймеру, чем меньше промежуток тем лучше.
С остальным согласен, только, ядро никогда его не увеличит буфер, потому как посылающие приложение знает истиный размер и соответсвено его передаст.
Иначе приложение прочитает любую инфу не предназначеную для него, по таймеру, чем меньше промежуток тем лучше.
С остальным согласен, только, ядро никогда его не увеличит буфер, потому как посылающие приложение знает истиный размер и соответсвено его передаст.
Так, как и везде. В обработчике событий от клавиатуры. В приложении разумеется.Приложение должно иметь доступ к буферу обмена если пользователь этого захотел. Как ты это собираешся определять?
Last edited by Serge on Tue Dec 11, 2012 2:13 am, edited 1 time in total.
Опрос по таймеру попрежнему возможен так понимаю.Так как и везде. В обработчике событий от клавиатуры. В приложении разумеется.
Я за принудительную UTF8-изацию вообще всего.Serge wrote:И про кодировку текста. Использовать unicode или нет ?
Сделаем мир лучше!
Я тоже.CleverMouse wrote:Я за принудительную UTF8-изацию вообще всего.
думаю многие за этоCleverMouse wrote: Я за принудительную UTF8-изацию вообще всего.
to infinity and beyond
Оно нигде не запрещено. Вопрос зачем ?ilya wrote:Опрос по таймеру по прежнему возможен так понимаю.
Кодировка переменной длины неудобна в обработке. Да и какой смысл, кириллица и всё не латинское ведь всё равно будет двумя байтами кодироваться.Я за принудительную UTF8-изацию вообще всего.
Code: Select all
Unicode UTF-8:
0x00000000 — 0x0000007F: 0xxxxxxx
0x00000080 — 0x000007FF: 110xxxxx 10xxxxxx
0x00000800 — 0x0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
0x00010000 — 0x001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
Дело не в экономией. UTF-8 обратно совместима с ANSI. (например FASM прекрасно компилирует UTF-8 исходник с кириллических текстах внутри) Большая часть кода не меняется вообще.
А UTF-16, если обрабатывать правильно на самом деле тоже является переменной длины и тоже неудобна в обработке.
А UTF-16, если обрабатывать правильно на самом деле тоже является переменной длины и тоже неудобна в обработке.
Who is online
Users browsing this forum: No registered users and 35 guests