AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bass.dll: BASS_GetVersion() -> AV an Adresse 0x00000000
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Die Muhkuh · begonnen am 12. Jul 2005 · letzter Beitrag vom 12. Jul 2005
Antwort Antwort
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
NicoDE
(Gast)

n/a Beiträge
 
#2

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

  Alt 12. Jul 2005, 17:07
Unit (Header) und DLL haben die gleiche Version?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

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

  Alt 12. Jul 2005, 17:08
Muss nicht irgendwo die Ini-Methode in der Bass DLL Delphi Unit aufgerufen werden?
function BASS_Init(device: Integer; freq, flags: DWORD; win: HWND): BOOL; stdcall; external 'bass.dllname 'BASS_Init';
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

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

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

  Alt 12. Jul 2005, 17:08
Zitat von NicoDE:
Unit (Header) und DLL haben die gleiche Version?
Hi,

ja. Die Bass.Dll-Beispiele lassen sich anstandslos compilieren und funktionieren.

[edit]
@Michael,

doch, aber die Bass_GetVersion()-Methode ruft man vor Bass_Init auf. So ist das in den Beispielen.
[edit]

[edit2]
Ich habs nun auch versucht, erst Bass_Init aufzurufen und dann die Bass_GetVersion()-Methode, aber nun kommt der Fehler bei Bass_Init.
[/edit2]
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#5

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

  Alt 12. Jul 2005, 17:37
@Spider Starte mal den Rechner neu. (unload event. DLL's)

Habe deinen Code getestet und er ist ok, bis auf:
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;
ändern zu:
Delphi-Quellcode:
if Bass_GetVersion() <> DWORD(MAKELONG(2, 1)) then
  begin
    Error('BASS.DLL 2.1 nicht geladen!' + #10 + 'Ihre BASS.DLL-Version: %d.%d',
      [LoWord(Bass_GetVersion()),HiWord(Bass_GetVersion())], EBassLoadError);
  end;
weil: BASS_GetVersion: DWORD;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

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

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

  Alt 12. Jul 2005, 17:43
Hi Matti,

dass mit dem PC Neustarten habe ich versucht, aber ich bekomme den Fehler trotzdem.

Ich hab es auch nochmal mit einem neuen Projekt versucht, aber dort ist der gleiche Fehler.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

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

  Alt 12. Jul 2005, 17:52
Liegt die DLL denn im Anwendungsverzeichnis?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

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

  Alt 12. Jul 2005, 18:52
Versuch mal die Demo in Anhang, und prüfe deine BASS.DLL (neu downloaden).

Stelle sicher, dass die Bass.pas im Verzeichnis die einzige ist. (nicht das irgend wo noch eine andere event. alte Version vorhanden ist zB. im Delphi Bibliothekspfad)
Angehängte Dateien
Dateityp: zip bassdemo_124.zip (13,7 KB, 26x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

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

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

  Alt 12. Jul 2005, 19:08
@Luckie

ja

@Matti,

danke. Es lag an meiner Bass.pas. Ich hab die bass21.zip von beiden Servern runtergeladen, aber jedesmal ging es nicht. Mit deiner Bass.pas geht es nun. Der Unterschied in den Bass.pas liegt daran, dass manche function in deiner Bass.pas als proceduren deklariert sind.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz