![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OemToChar не пашет в WinXP рус D6 ? [D6, WinXP]
blackman © (2003-01-23 09:43:00)Скомпилировал старую программу работавшую в WIN98 с функцией
OemToChar результаты поражают своей кривизной.
В чем может быть дело:
- моя криворукость
- неправильная установка XP
- ошибка D6
- ...
Reindeer Moss Eater (2003-01-23 11:48:00) [21]Это не может быть сделано, если OemToChar используется как wide-character функция.
Нет !!!
Утверждаю, что работало в Win98!
Видимо Вы не знаете в чем дело. Жаль. Буду копать сам
А там нет поддержки Unicode :)
Игорь Шевченко (2003-01-23 11:45:00) [22]
> Утверждаю, что работало в Win98!
Повезло.
Я все-таки рекомендую обратиться к функции OemToCharBuff
blackman (2003-01-23 11:37:00) [23]>Игорь Шевченко
Указатели на буфер для переведенной строки. Если функция OemToChar используется как функция ANSI, строка может быть переведена в месте, устанавливая lpszDst параметр для того же самого адреса как lpszSrc параметр. Это не может быть сделано, если OemToChar используется как wide-character функция.
Нет !!!
Утверждаю, что работало в Win98!
Видимо Вы не знаете в чем дело. Жаль. Буду копать сам
Игорь Шевченко (2003-01-23 11:25:00) [24]Parameters
lpszSrc
Points to a null-terminated string of characters from the OEM-defined character set.
lpszDst
Points to the buffer for the translated string. If the OemToChar function is being used as an ANSI function, the string can be translated in place by setting the lpszDst parameter to the same address as the lpszSrc parameter.This cannot be done if OemToChar is being used as a wide-character function.
Неужели трудно TFM лишний раз почитать ?
Или использвать OemToCharBuff.
Проблема не в XP. Проблема в коде.
Reindeer Moss Eater (2003-01-23 11:25:00) [25]Ты нас убеждал, что код приведенный blackman © (23.01.03 11:11) работает на win9x.
Он с ошибкой
Что ты хочешь услышать еще?
blackman (2003-01-23 11:23:00) [26]>Reindeer Moss Eater
Аналогично:
function NDosToWin(St:string):string;
var Ch:PChar;
begin
Ch:=StrAlloc(Length(St)+1);
OemToAnsi(PChar(St),Ch);
Result:=Ch;
StrDispose(Ch)
end;
???
Reindeer Moss Eater (2003-01-23 11:21:00) [27]А где выделение памяти под Str?
blackman (2003-01-23 11:20:00) [28]>Игорь Шевченко
OemToChar(Src, Str);
!!!
Игорь Шевченко (2003-01-23 11:13:00) [29]OemToChar (Src, Src)
ДНК поправить (уж не обижайся)
Reindeer Moss Eater (2003-01-23 11:13:00) [30]А где выделение памяти под Str?
blackman (2003-01-23 11:11:00) [31]>Игорь Шевченко
memo1.lines.loadfromfile(opendialog1.filename);
procedure DosToWin;
var Src, Str:PChar;
begin
Src := Form1.Memo1.Lines.GetText;
OemToChar(Src, Str);
Form1.Memo1.clear;
Form1.Memo1.Lines.Text:= StrPas(Str);
end;
Ну и что тут... ?
Reindeer Moss Eater (2003-01-23 11:08:00) [32]Тебе сказали причину по которой ты на видишь русский текст после вызова функции. Это OEM набор символов в твоей XP такой.
Будь она хоть трижды русская
blackman (2003-01-23 11:06:00) [33]>Reindeer Moss Eater
Интересно. А я о чем спрашиваю ?
Понятно, что что то не то, но что ?
Набор символов не тот.
Повторяю еще раз стоит WINXP рус !!!
Игорь Шевченко (2003-01-23 11:03:00) [34]Код программы, языковые установки - в студию!
Reindeer Moss Eater (2003-01-23 11:03:00) [35]blackman © (23.01.03 10:54)
Вникай в смысл сказанного. То что после вызова ты видишь русский текст, не говорит о том, что функция конвертит в русский.
А то что ты не видишь русский текст в XP говорит о том, что OEM набор символов у тебя не тот.
blackman (2003-01-23 10:57:00) [36]>unknown helper device
Русский конечно. Может перед перекодом раскладку переключить ?
Балдею...
blackman (2003-01-23 10:54:00) [37]>Reindeer Moss Eater
Она конвертирует не в русский, а из Oem в Ansi и в том числе русские
Никогда не говори никогда не пробуя...
Reindeer Moss Eater (2003-01-23 10:49:00) [38]Так же как и CharToOem
Reindeer Moss Eater (2003-01-23 10:49:00) [39]OemToChar никогда не конвертировала в Русский
blackman (2003-01-23 10:46:00) [40]>Игорь Шевченко
Ничего не понимаю...
Эта программа и не только эта трудились под 98
Что ?