Einzelnen Beitrag anzeigen

Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 

Re: MusicBrainz abfragen per musicbrainz.dll (siehe Bsp. Cod

  Alt 25. Apr 2006, 14:08
Die Richtige definition für die mb_GetVersion lautet wie folgt:

   function mb_GetVersion(mb:TMusicbrainz;var min,maj,rev:integer):integer;stdcall;external dllname; stdcall ist wichtig, da es sich um eine C-Bibleothek handelt. Desweiteren Var-Parameter, da diese ja verändert werden (also der Zeiger auf die Variable gebraucht wird);

Wenn du es mit folgendem code probierst, sollte es gehen:

Delphi-Quellcode:
   const
   thedll='libmusicbrainz.dll';

type
   TMusicbrainz = pointer;

procedure mb_Delete(mb:TMusicbrainz);stdcall;external thedll;
procedure mb_GetVersion(mb:TMusicbrainz;var minor,major,rev:integer);stdcall;external thedll;
function mb_New():TMusicbrainz;stdcall;external thedll;
                 :
var
  mb : TMusicbrainz;
  erg,min,maj,rev : integer;

begin
  mb := mb_New;
  erg := mb_GetVersion(mb,min,maj,rev);
  if (erg <> 0) then
    showmessage(format('Version: %2d.%2d.%2d',[min,maj,rev]))
  else
    showmessage('Fehler !');
  mb_Delete(mb:TMusicbrainz);
end;
Einziges Problem dabei ist, das der den mb_Delete am ende nicht mag.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat