Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема в работе StrPCopy [D2005, XP]


Ramzes001 ©   (2008-03-29 10:15:00) 

Приветствую всех Мастеров!
Имеется следующий код:
procedure TformMain.N3Click(Sender: TObject);
var
PCh: PChar;
begin
StrPCopy(PCh,'D:\DCIM\DSC00074.wav');
PlaySound(PCh,0, SND_FILENAME or SND_SYNC);
end;

к сожалению он не работает, вылетает Access violation, построчное компилирование (или как оно называется, в общем F7/F8) показывает, что ошибка в строке с функцией StrPCopy, меняю код на:
//StrPCopy(PCh,'D:\DCIM\101_SONY\DSC00074.JPG.wav');
PlaySound('D:\DCIM\101_SONY\DSC00074.JPG.wav',0, SND_FILENAME or SND_SYNC);

всё работает, но проблема в том, что требуется чтоб имя файла было переменной типа string, а если его на прямую вписывать в функцию PlaySound, то он матерится, что мол формат не тот. Искал коментарии по функции StrPCopy, у всех она работает нормально,помогите пожалуйста, если кто то сталкивался.
Заранее спасибо!


Ramzes001   (2008-03-29 11:23:00) [1]

Всё работает!! Всем спасибо! Ошибку понял. Справку читать буду пытаться, но к сожалению мои знания английского близки к нулю.
Ещё раз всем спасибо!!!!!!!


Сергей М.   (2008-03-29 10:23:00) [2]


> если его на прямую вписывать в функцию PlaySound, то он
> матерится, что мол формат не тот


PlaySound( PChar(MyStringVar )...);


Palladin   (2008-03-29 10:23:00) [3]

TformMain.N3Click(Sender: TObject);
var
PCh: PChar;
begin
PCh:='D:\DCIM\DSC00074.wav';
PlaySound(PCh,0, SND_FILENAME or SND_SYNC);
end;


TformMain.N3Click(Sender: TObject);
var
PCh: String;
begin
PCh:='D:\DCIM\DSC00074.wav';
PlaySound(PChar(PCh),0, SND_FILENAME or SND_SYNC);
end;


TformMain.N3Click(Sender: TObject);
var
PCh: PChar;
begin
GetMem(PCh,Length('D:\DCIM\DSC00074.wav')+1);
StrPCopy(PCh,'D:\DCIM\DSC00074.wav');
PlaySound(PCh,0, SND_FILENAME or SND_SYNC);
FreeMem(PCh)
end;


выбирай любой вариант, ошибку надеюсь понял? справку читать будешь?


Наверх

Титульная страница Поиск, карта сайта Написать письмо