AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler beim starten von MCI !

Ein Thema von thomas2009 · begonnen am 15. Sep 2010 · letzter Beitrag vom 15. Sep 2010
Antwort Antwort
thomas2009
(Gast)

n/a Beiträge
 
#1

Fehler beim starten von MCI !

  Alt 15. Sep 2010, 16:21
Hallo

ich versuche Dateien aus einer dll Datei auf die Festplatte zu speichern.
Es wird zwar eine Video Datei aus dll geholt aber leer (0 bit)
Fehlermeldung : Fehler beim Starten von MCI

das ist mein Code :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
LibraryName, ResourceName, TempName: string;
Instance, Resource, Block, BlockSize: LongInt;
Buffer:pointer;
Stream:TMemoryStream;
begin
LibraryName:='myarchivdll.dll';
ResourceName:='test.avi';
TempName:=ExtractFilePath(ParamStr(0))+'TEMP.avi';
Instance:=LoadLibrary(pchar(LibraryName));
Resource:=FindResource(Instance, pchar(ResourceName), RT_RCDATA);
Block:=LoadResource(Instance,Resource);
BlockSize:=(SizeOfResource(Instance,Resource));
Buffer:=LockResource(Block);
Stream:=TMemoryStream.Create;
try
Stream.WriteBuffer(pointer(Buffer)^,BlockSize);
Stream.Position:=0;
Stream.SaveToFile(TempName);
finally
Stream.Free;
end;
MediaPlayer1.FileName:=TempName;
MediaPlayer1.Display:=Panel1;
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: Fehler beim starten von MCI !

  Alt 15. Sep 2010, 18:37
Du hast ja keinerlei Fehlerprüfungen in deinem Code!
Man muss ja mindestens mal abfragen, ob der Ergebnis von LoadLibrary in Ordnung ist.

Und noch fünf Hinweise:
* Besser die DLL so laden:
Delphi-Quellcode:
Instance:=LoadLibraryEx(pchar(LibraryName),0,LOAD_LIBRARY_AS_DATAFILE);
if Instance = 0 then raise Exception.CreateFmt('%s kann nicht geladen werden', [LibraryName]);
* nicht vergessen, die DLL mit FreeLibrary freizugeben
* Mit der Klasse TResourcestream kommst du einfacher an die Daten ran.
* Im Programmverzeichnis hat man häufig keine Schreibrechte. Die AVI-Datei gehört ins TEMP-Verzeichnis
* Trenne das Entpacken der Video-Datei von dem Abspielen der Daten. Mit zwei Funktionen mit entsprechenden Übergabeparametern wird's besser.
Andreas
  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 03:15 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