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]