Zitat:
PS: Trotzdem wäre ich neugierig, wieso bei FillChar eine
Access Violation erfolgt.
Sorry man sollte schon wissen was man tut.
1. Variable ist falsch
Delphi-Quellcode:
var
WavInfo: W32Waves.PWaveInformation;
WavInfo ist definitiv nicht initialisiert.
Daher..
Delphi-Quellcode:
var
WavInfo: W32Waves.TWaveInformation;
2. Aufruf ändern
if W32Waves.GetWaveInformationFromFile(PChar(Trim(Edit.Text)), WavInfo) then
zu
if W32Waves.GetWaveInformationFromFile(PChar(Trim(Edit.Text)), @WavInfo) then
3. Diese Funktion ändern
function GetWaveInformationFromFile(const aFileName: AnsiString; Info: pWaveInformation): Winapi.Windows.Bool;
zu
function GetWaveInformationFromFile(const aFileName: PWideChar; Info: pWaveInformation): Winapi.Windows.Bool;
abschließend
hdmmio := Winapi.MMSystem.mmioOpen(PChar(aFileName), nil, Winapi.MMSystem.MMIO_READ);;
zu
hdmmio := Winapi.MMSystem.mmioOpen(aFileName, nil, Winapi.MMSystem.MMIO_READ);
Zitat:
Oder wieso gibt es hier sonst eine
Access Violation?
Weil WavInfo vorher nicht initialisiert wurde.
Fazit:
Ja auch Debuggen ist mit unter eine Kunst!