Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

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

Re: midi's in eine dll packen und wieder abspielen

  Alt 23. Mai 2005, 16:14
Hi, so könnte es funktionieren eine resource aus einer exe bzw. Dll in den Mediaplayer zu laden

Delphi-Quellcode:
procedure ...
var
  Path : String;
  Res : TResourceStream;
  handle: THandle;
begin
  Path:=ExtractFilePath(Application.ExeName); // Path der Exe ermitteln
  if Path[Length(Path)] <> '\then Path := Path +'\'; // Backslash am Pathende?
  
  handle := LoadLibrary('SampleTest.dll'); // DLL laden
  if handle = 0 then // Prüfen ob die DLL geladen ist
  begin
    ShowMessage('Laden fehlgeschlagen');
    Exit;
  end;

  //Res:=TResourceStream.Create(handle,'MYMIDI','MIDI_DATA'); // Resource aus DLL laden
  Res:=TResourceStream.Create(hInstance,'MYMIDI','MIDI_DATA'); // Resource aus Exe laden
  Try
    Res.SaveToFile(Path + 'TmpSample.mid'); // File auf HD speichern
    MediaPlayer1.Filename := Path + 'TmpSample.mid'; // MPlayer File laden
    MediaPlayer1.Play; // Sound abspielen
  Finally
    Res.Free; // Resource freigeben
    FreeLibrary(handle); // DLL aus dem Speicher freigeben
  end;
end;

Die Resourcentextdatei (.RC):
Delphi-Quellcode:
MyMIDI MIDI_DATA "Sample.mid"
MyMIDI2 MIDI_DATA "Sample2.mid"
...
MfG.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat