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.