Registriert: Sa Okt 22, 2005 20:24 Beiträge: 291 Wohnort: Frauenfeld/CH
moin
wie ich dieses "access violation" fenster doch hasse...
ich hab wieder mal ein problem mit access violation, nach 5h suchen hab ich den fehler immer noch nicht gefunden...
der fehler sieht folgendermassen aus: "[...]raised exception class EAccessViolation with message 'Access violation at address 77F59ECD in module 'ntdll'. Write of address 00000010'. [..]"
zuerst mal mache ich das create:
OpenAL:= TOpenalclass.Create;
die violation wird bei addsound ausgelöst:
OpenAL.initOpenAL;
//sounds.aerzte_theme :=
openal.addsound('data\sounds\aerzte_theme.wav');
dann hab ich hier die 2 proceduren und die violation tritt bei sounds[num..].Create auf, wenn ich diese zeile rausnehme macht er keine probleme.
Code:
procedure TOpenALclass.initOpenAL;
begin
numsounds:=0;
end;
function TOpenALclass.addsound(path:string):integer;
begin
inc(numsounds);
setlength(sounds,numsounds+2);
sounds[numsounds].Create;
//sounds[numsounds].buffer.LoadFromFile(path);
//sounds[numsounds].Update;
//result:=numsounds;
end;
was noch dazu kommt, ist das ich nicht mal auf eine leere funktion zugreifen kann wenn ich den integer rückgebe:
function TOpenALclass.addsound(path:string):integer;
begin
//inc(numsounds);
//setlength(sounds,numsounds+2);
//sounds[numsounds].Create;
//sounds[numsounds].buffer.LoadFromFile(path);
//sounds[numsounds].Update;
//result:=numsounds;
end;
bitte um hilfe, komme echt nich mehr weiter, google brachte mir auch nichts ausser viele leute die das gleiche problem hatten aber keine lösung gefunden wurde, oder aber die selbe exception aus irgendeinem völlig anderen gebiet.
Du hast da ein "sounds[numsounds].Create;" - wie wäre es mit einem "sounds[numsounds] := TSounds.create"? (TSounds durch den Bezeichner der Soundsklasse ersetzen)
Registriert: Sa Okt 22, 2005 20:24 Beiträge: 291 Wohnort: Frauenfeld/CH
das zweite problem konnte ich erstmal beheben, indem ich die volle bezeichnung davor setzte, also game.sounds.aerzte_theme, weiss nich warum das so ist, weil die procedure ist Tgame.xyz, der compiler hat ja auch nicht gemotzt...
Registriert: Sa Okt 22, 2005 20:24 Beiträge: 291 Wohnort: Frauenfeld/CH
so hab den fehler jetzt gefunden. Das ganze lag daran, das ich irgendeine schlechte OpenAL32.dll aus dem netz gezogen hatte, welche wohl nicht das gemacht hat was sie eigentlich sollte. jetzt geht das ganze einwandfrei
Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.