Einzelnen Beitrag anzeigen

Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

Bass.dll: BASS_GetVersion() -> AV an Adresse 0x00000000

  Alt 12. Jul 2005, 17:03
Hi,

ich lade die Bass.dll folgendermaßen:

Delphi-Quellcode:
  if Bass_GetVersion() <> DWORD(MAKELONG(2, 1)) then // Da kommt die Exception
  begin
    Error('BASS.DLL 2.1 nicht geladen!' + #10 + 'Ihre BASS.DLL-Version: %s',
      [Bass_GetVersion()], EBassLoadError);
  end;
Diesen IF-Block hab ich in der BassTest abgeschaut, dort wird das genauso gemacht, aber dort funktioniert es. In meinem Code allerdings, erhalte ich folgende Meldung:

Code:
---------------------------
Benachrichtigung über Debugger-Problem
---------------------------
Im Projekt E:\Delphi\Meine Programme\Bass-Unit\BassEx.exe sind zu viele aufeinander folgende Exceptions aufgetreten: ''access violation at 0x00000000: read of address 0x00000000''. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK  Hilfe  
---------------------------
Der gesamte Code ist das:

Delphi-Quellcode:
unit uaudioengine;

interface

uses
  Bass, Windows, SysUtils;

type
  EExceptionClass = class of Exception;
  EBassLoadError = Exception;

  TAudioEngine = class
  private
    procedure Error(Msg: String; const Arg: array of const; aException: EExceptionClass);
  public
    constructor Create(WND: HWND);
    destructor Destroy; override;
  end;

implementation

constructor TAudioEngine.Create(WND: HWND);
begin
  if Bass_GetVersion() <> DWORD(MAKELONG(2, 1)) then
  begin
    Error('BASS.DLL 2.1 nicht geladen!' + #10 + 'Ihre BASS.DLL-Version: %s',
      [Bass_GetVersion()], EBassLoadError);
  end;
end;

destructor TAudioEngine.Destroy;
begin
  Bass_Free();
  inherited;
end;

procedure TAudioEngine.Error(Msg: String; const Arg: array of const;
  aException: EExceptionClass);
begin
  raise aException.CreateFmt(Msg, Arg);
end;
Mehr gibt es noch nicht, da ich gerade erst damit angefangen hab.

Ich möchte nun wissen, warum ich diesen Fehler bekomme.

[edit2] Die Bass.dll ist im Verzeichnis dieser Unit [/edit2]
  Mit Zitat antworten Zitat