![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Русификация [D7, WinXP]
Nickolay © (2010-07-01 12:06:00)Сразу извиняюсь за свой "стон", но все-таки "консоль не поет по-русски": консольное приложение не выдает "Привет!" в Delphi 7 с помощью инструкции WriteLn('Привет!').
Пытался сделать по статье Евгения Каснерика с вашего сайта,
но процедур CharToOem, CharToOemBuff почему-то нет в библиотеке.
Как быть?
Anatoly Podgoretsky (2010-07-02 14:46:00) [1]> Nickolay (02.07.2010 12:52:33) [33]
Лучше который на сайте msdn.microsoft.com
Nickolay (2010-07-02 12:52:00) [2]MSDN - это который в поставке Visual C++ 6.0 идет?
Anatoly Podgoretsky (2010-07-02 10:35:00) [3]> Nickolay (02.07.2010 09:01:30) [30]
MSDN
RWolf (2010-07-02 09:29:00) [4]
> Nickolay (02.07.10 09:01) [30]
Пуск — Программы — Borland Delphi 7 — Help — MS SDK Help Files — Win32 SDK Reference.
Nickolay (2010-07-02 09:01:00) [5]Ребята, а про модуль Windows где можно почитать? А то у меня куча толстых книг (Архангельского, Хомоненко и др.), а про Windows только слегка упоминается. В справке Delphi тоже ничего нет.
Anatoly Podgoretsky (2010-07-02 00:54:00) [6]> Leonid Troyanovsky (01.07.2010 23:19:28) [28]
Побоялся, что скажут ты не умничай.
Leonid Troyanovsky (2010-07-01 23:19:00) [7]
> Dimka Maslov © (01.07.10 17:15) [27]
> Вообще-то правильней будет переопределить системную переменную
Сперва тож хотел заказать "Text-file device drivers", но,
поразмыслив о правильности, пропустил.
--
Regards, LVT.
Dimka Maslov (2010-07-01 17:15:00) [8]Вообще-то правильней будет переопределить системную переменную output, чтобы функция обработки вывода перекодировала в нужную кодировку а затем осуществляла вывод на консоль.
Anatoly Podgoretsky (2010-07-01 16:36:00) [9]> RWolf (01.07.2010 15:25:19) [19]
Ну и как, насколько корректна работа с памятью,
Nickolay (2010-07-01 15:56:00) [10]
> RWolf © (01.07.10 15:46) [24]
Все дело, наверное, в верии FAR. У меня:
The FAR manager, version 1.70 beta 2 (build 321)
Copyright (C) 1996-2000 Eugene Roshal, Copyright (C) 2000 FAR Group
RWolf (2010-07-01 15:46:00) [11]
> Nickolay (01.07.10 15:32) [21]
> Естественно, и "chcp 1251", и EXE-шник запускал из-под FAR!
http://clip2net.com/page/m0/6616284
Deltas (2010-07-01 15:36:00) [12]
> RWolf © (01.07.10 15:25) [19]
тем более, если строка-параметр будет содержать нулевые символы, работать будет некорректно
Deltas (2010-07-01 15:33:00) [13]
> RWolf © (01.07.10 15:25) [19]
согласен
Nickolay (2010-07-01 15:32:00) [14]Естественно, и "chcp 1251", и EXE-шник запускал из-под FAR!
RWolf (2010-07-01 15:27:00) [15]
> Nickolay (01.07.10 15:24) [18]
> Ребята! Спасибо за функции и "uses Windows;" - все работает.
> А вот "chcp 1251" - что-то не действует! Выдает, что "текущая
> страница уже есть 1251", а "Привет!" так и не печатает.
ключевое слово — «в FAR».
RWolf (2010-07-01 15:25:00) [16]
> Deltas © (01.07.10 15:12) [17]
> По-моему, функция
> рабочая, работа с памятью корректная.
вызови её так:
ConsToRussian('');
Nickolay (2010-07-01 15:24:00) [17]Ребята! Спасибо за функции и "uses Windows;" - все работает.
А вот "chcp 1251" - что-то не действует! Выдает, что "текущая страница уже есть 1251", а "Привет!" так и не печатает.
Deltas (2010-07-01 15:12:00) [18]Anatoly Podgoretsky © (01.07.10 14:54) [13]
По-моему, функция рабочая, работа с памятью корректная.
AnsiToOem (2010-07-01 15:03:00) [19]> Deltas © (01.07.10 15:00) [15]
Соглашусь
Deltas (2010-07-01 15:00:00) [20]AnsiToOem (01.07.10 14:45) [11]
Все же, намного правильнее передавать в этом случае строку по ссылке, а не по значению. ( constS: string), т.к. в этом случае в стек (или даже в регистр процессора может засунуть хитрый компилятор Delphi) будет записано всего 4 байта, вместо Length(S) + 9 байтов.