Registriert seit: 23. Jul 2005
71 Beiträge
Delphi 10 Seattle Professional
|
.XM Datei als Resource laden
16. Mai 2010, 08:54
Hallo,
wenn ich über die bass.dll ein .XM Musikstück direkt von einer Datei abspiele funktioniert es.
Meine versuche es als Resource einzubinden und abzuspielen schlagen fehl. Hat jemand eine eine Idee was ich falsch mache?
so geht's:
Delphi-Quellcode:
BASS_Init(-1, 44100, 0, 0, nil);
XMFileName := ExtractFilePath(ParamStr(0)) + 'music.xm';
XMStream := BASS_MusicLoad(False, PChar(XMFileName), 0, 0,
bass.BASS_MUSIC_STOPBACK or bass.BASS_MUSIC_RAMP, 0);
und so geht's nicht:
Delphi-Quellcode:
{$R Chiptunes.RES}
...
function TformAbout.LoadFromResourceID(ResourceID: Integer;
ResourceTyp: PChar): Pointer;
var
HResInfo: HRSRC;
HGlobal: THandle;
begin
HResInfo := FindResource(HInstance, MAKEINTRESOURCE(ResourceID), ResourceTyp);
HGlobal := LoadResource(HInstance, HResInfo);
if HGlobal = 0 then
raise EResNotFound.Create('Can''t load resource: ' + IntToStr(ResourceID));
Result := LockResource(HGlobal);
end;
...
BASS_Init(-1, 44100, 0, 0, nil);
XMStream := BASS_MusicLoad(False, LoadFromResourceID(100, RT_RCDATA), 0, 0, BASS_MUSIC_STOPBACK or BASS_MUSIC_RAMP, 0);
Den Resource-Stream lade ich über die Chiptunes.rc Datei die ich vorher mit BRCC32.exe Chiptunes.rc generiert habe:
100 RCDATA DISCARDABLE "music.xm"
Gruss Alois
|
|
Zitat
|