Доброго времени суток !
проблема следующая
создал переменную для поиска .exe программы
exe:=ExtractFilePath(ParamStr(0));
но далее вывод в label русского текста был не корректный (вместо русских символов вопросительные знаки)
смог перевести в utf8
Label3.Caption:=AnsiToUtf8(exe);
далее я использовал MMSystem для воспроизведения звука и тут не могу разобраться с
PlaySound(exe+'xx.wav',0,SND_ASYNC);
функции не не нравится UTF-8 (но если перевести обратно в ansi то сного появляются вопросительные знаки вместо русских символов )
Помогите это победить !!
Заранее спасибо за ваш труд !
Ошибка кодироквки
Модератор: Модераторы
и тут не могу разобраться с
PlaySound(exe+'xx.wav',0,SND_ASYNC);
Посмотри в консоли путь который ты загружаешь в функцию:
Код: Выделить всё
Writeln(exe+'xx.wav');Возможно правильно его надо писать exe+'\xx.wav'
функции не не нравится UTF-8 (но если перевести обратно в ansi то сного появляются вопросительные знаки вместо русских символов )
А ты работай только с путями в ansi кодировке и система тебя всегда поймёт а для отображения в лазарусе используй второй комплект строковых переменных.
проверил "exe+'xx.wav'" ошибок нет
да я бы с радостью, но получаю вот такое
"unit1.pas(148,23) Error: Incompatible type for arg no. 1: Got "AnsiString", expected "PChar""
да я бы с радостью, но получаю вот такое
"unit1.pas(148,23) Error: Incompatible type for arg no. 1: Got "AnsiString", expected "PChar""
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);Огромное спасибо всё работает !!
