Ошибка кодироквки

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ошибка кодироквки

Сообщение pululun » 18.04.2013 22:40:17

Доброго времени суток !
проблема следующая
создал переменную для поиска .exe программы
exe:=ExtractFilePath(ParamStr(0));
но далее вывод в label русского текста был не корректный (вместо русских символов вопросительные знаки)
смог перевести в utf8
Label3.Caption:=AnsiToUtf8(exe);
далее я использовал MMSystem для воспроизведения звука и тут не могу разобраться с
PlaySound(exe+'xx.wav',0,SND_ASYNC);
функции не не нравится UTF-8 (но если перевести обратно в ansi то сного появляются вопросительные знаки вместо русских символов )
Помогите это победить !!
Заранее спасибо за ваш труд !
pululun
новенький
 
Сообщения: 10
Зарегистрирован: 07.04.2013 13:00:41

Re: Ошибка кодироквки

Сообщение Сквозняк » 18.04.2013 23:11:19

и тут не могу разобраться с
PlaySound(exe+'xx.wav',0,SND_ASYNC);

Посмотри в консоли путь который ты загружаешь в функцию:
Код: Выделить всё
Writeln(exe+'xx.wav');

Возможно правильно его надо писать exe+'\xx.wav'
функции не не нравится UTF-8 (но если перевести обратно в ansi то сного появляются вопросительные знаки вместо русских символов )

А ты работай только с путями в ansi кодировке и система тебя всегда поймёт а для отображения в лазарусе используй второй комплект строковых переменных.
Сквозняк
энтузиаст
 
Сообщения: 1129
Зарегистрирован: 29.06.2006 22:08:32

Re: Ошибка кодироквки

Сообщение pululun » 18.04.2013 23:21:15

проверил "exe+'xx.wav'" ошибок нет
да я бы с радостью, но получаю вот такое
"unit1.pas(148,23) Error: Incompatible type for arg no. 1: Got "AnsiString", expected "PChar""
pululun
новенький
 
Сообщения: 10
Зарегистрирован: 07.04.2013 13:00:41

Re: Ошибка кодироквки

Сообщение SeZuka » 19.04.2013 04:56:42

pululun писал(а):"unit1.pas(148,23) Error: Incompatible type for arg no. 1: Got "AnsiString", expected "PChar""

А что из текста ошибки не понятно в чем она заключается?
Параметр должен быть PChar, а вы пихаете AnsiString.
Напишите так:
Код: Выделить всё
PlaySound(PChar(exe+'xx.wav'),0,SND_ASYNC);
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Re: Ошибка кодироквки

Сообщение pululun » 19.04.2013 07:59:44

Огромное спасибо всё работает !!
pululun
новенький
 
Сообщения: 10
Зарегистрирован: 07.04.2013 13:00:41


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 223

Рейтинг@Mail.ru