AlutInit (OpenAL) führt plötzlich zu Exeption

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
MitjaStachowiak
Lazarusforum e. V.
Beiträge: 395
Registriert: Sa 15. Mai 2010, 13:46
CPU-Target: 64 bit
Kontaktdaten:

AlutInit (OpenAL) führt plötzlich zu Exeption

Beitrag von MitjaStachowiak »

Hallo,
ich hab' da ein Programm, das den Befehl AlutInit verwendet. Jedoch geht der auf einmal nicht mehr. Um auf Nummer sicher zu gehen, habe ich testweise nur ein Leeres Formular mit InitOpenAL; und AlutInit(0,argv); erstellt und damit ihr euch davon überzeugen könnt, das mal auf meiner Website hochgeladen:
http://www.mitjastachowiak.de/?File=/pr ... Fehler.zip

Ich habe erst seit kurzem Windows 7 64bit und Seitdem eine aktuellere Version von Lazarus. Ich meine zwar, es ging damit schon, aber vielleicht kann ja mal jemand mit einer älteren Version versuchen, das zu compilieren. :|

Auf dem anderen XP-Rechner geht es auch nicht.
Vielleicht verwende ich die falsche openAL.pas - hab aber auch schon erfolglos eine andere - versucht.
Die AlutInit-Funktion sieht so aus:

Code: Alles auswählen

procedure alutInit(argc: PALint; argv: array of PALbyte);
var
  Context: PALCcontext;
  Device: PALCdevice;
begin
  //Open device
  Device := alcOpenDevice(nil); // this is supposed to select the "preferred device"
  //Create context(s)
  Context := alcCreateContext(Device, nil);
  //Set active context
  alcMakeContextCurrent(Context);
end;
Mit ein Paar ShowMessage(s) habe ich herausgefunden, dass der Fehler bei alcOpenDevice(nil) kommt, aber das ist anscheinend ausgelagert, deswegen hilft mir das wenig. :(

MitjaStachowiak
Lazarusforum e. V.
Beiträge: 395
Registriert: Sa 15. Mai 2010, 13:46
CPU-Target: 64 bit
Kontaktdaten:

Re: AlutInit (OpenAL) führt plötzlich zu Exeption

Beitrag von MitjaStachowiak »

Hat denn niemand mehr ein älteres Lazarus?
In dem Programm steht doch nur im FormCreate InitOpenAL und AlutInit:

Code: Alles auswählen

unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  openal;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 
 
var
  Form1 : TForm1;
  argv  : array of PALByte;
 
implementation
 
{ TForm1 }
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 InitOpenAL;
 AlutInit(nil,argv);
end;
 
initialization
  {$I Unit1.lrs}
 
end.
Eigentlich darf davon doch kein Fehler kommen. :|
Kann das jemand mit einer älteren Lazarusversion mal testen? Ich kann mir sonst nicht erklären, warum es nicht mehr geht.

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: AlutInit (OpenAL) führt plötzlich zu Exeption

Beitrag von MAC »

1 frage, mach mal strg linksklick auf openal.

Findest du da die folgenden funktionen ?

InitOpenAL;
AlutInit(nil,argv);

ich finde da nur die einbungung der dll . Such mal nen alternativen openal-Header

vielleicht hier
http://wiki.delphigl.com/index.php/Open ... BCbersicht" onclick="window.open(this.href);return false;
http://www.noeska.com/doal/" onclick="window.open(this.href);return false;

Code: Alles auswählen

Signatur := nil;

MitjaStachowiak
Lazarusforum e. V.
Beiträge: 395
Registriert: Sa 15. Mai 2010, 13:46
CPU-Target: 64 bit
Kontaktdaten:

Re: AlutInit (OpenAL) führt plötzlich zu Exeption

Beitrag von MitjaStachowiak »

Vielen Dank für den Tipp.
Ich hatte ja wie gesagt schon verschiedene Header ausprobiert, aber dadurch hab' ich wieder neuen Mut bekommen und auf einer externen Festplatte noch eine Sammlung .pas-Vateien und DLLs für OpenAL entdeckt, die ich damals für Delphi aus verschiedenen Bibliotheken zusammengestellt hatte, und nach ein Paar kleinen Änderungen lief es dann auch in Lazarus.

Irgendwie musste ich dann noch eine OpenAL32.dll herunterladen, das Programm braucht jetzt zwei Sekunden länger zum starten und es knackt dabei in den Lautsprechern (Was aber auch an meiner doofen, externen Soundkarte liegen kann) aber dann geht's.

Hab' diese Sammlung mal hochgeladen, für alle, die vielleicht das selbe Problem haben:
http://www.mitjastachowiak.de/?File=pro ... ateien.rar" onclick="window.open(this.href);return false;
Aber ewig möchte ich die da nicht lassen; man weiß ja nie, wegen Urheberrecht, und so...
Schreibt mich also bei Interesse einfach an, wenn sie weg sind :D

PS: Manche davon sind glaub' ich sogar von noeska.com :mrgreen:

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: AlutInit (OpenAL) führt plötzlich zu Exeption

Beitrag von MAC »

Danke, ich hab mir die mal geholt, da ich in zukunft auch plane mit openal zu arbeiten...

Mein gott du hast ja nen halbes Betriebssystem auf deiner Homepage :mrgreen:

Code: Alles auswählen

Signatur := nil;

MitjaStachowiak
Lazarusforum e. V.
Beiträge: 395
Registriert: Sa 15. Mai 2010, 13:46
CPU-Target: 64 bit
Kontaktdaten:

Re: AlutInit (OpenAL) führt plötzlich zu Exeption

Beitrag von MitjaStachowiak »

Mein gott du hast ja nen halbes Betriebssystem auf deiner Homepage
Danke^^

Du kannst ja erstmal die OpenAL.pas von Lazarus versuchen - vielleicht geht's ja bei dir. Es wundert mich jedenfalls, dass anscheinend niemand anderes dieses Problem hat.

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: AlutInit (OpenAL) führt plötzlich zu Exeption

Beitrag von MAC »

Also die OpenAL.pas bei mir ist leer, auch nach einem Update auf die aktuellste Entwicklerversion (20804 mit fpc 2.4.3).
von Daher kommt beim kompilieren ein Fehler das die Funktionen nicht gefunden werden.

Code: Alles auswählen

Signatur := nil;

Antworten