AGB  ·  Datenschutz  ·  Impressum  







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

AVI aus einer DLL

Ein Thema von xavior · begonnen am 4. Dez 2003 · letzter Beitrag vom 5. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
xavior

Registriert seit: 1. Dez 2003
Ort: Wuppertal
91 Beiträge
 
Delphi 6 Enterprise
 
#1

AVI aus einer DLL

  Alt 4. Dez 2003, 07:06
HiHo ( ), also ich hab ein kleines Problem, ich wollte mit Hilfe der Code-Library eine DLL-Datei erstellen ([cl]Library: Grafik / Sound / Multimedia[/cl]), das hat ja auch geklappt, und zwar so (Für andere die sowas auch machen möchten erklär ich mal den Anfang, mit dem Rest müsst ihr selbst klarkommen, da ich wie man's sieht nicht weiter weis ):

Eine Datei Names "MData32.rc" mit folgendem Inhalt erstellt :

Delphi-Quellcode:
ERDEDSDR AVIRES "Erde.avi"
HUNDDLAE AVIRES "Hund.avi"
WARTENEI ANIRES "Wart.ani"
ENDEAUSM ANIRES "Ende.ani"
HAHAHAHA WAVRES "Lach.wav"
ICHLPLAN WAVRES "Plan.wav"
SCHWULOD WAVRES "Schw.wav"
TERMINAT WAVRES "Term.wav"
WATWERBI WAVRES "Watw.wav"
LOGOMFIR BMPRES "Logo.bmp"
MAINICON SYMBOL "Logo.ico"
Dann habe ich unter Neu -> Weiter -> DLL-Experte ausgewählt und denn code volgendermaßen verändert :

Delphi-Quellcode:
library MData32;

{$R 'MData32.res' 'MData32.rc'}
{$R *.res}

begin
end.
Beim Compilieren hatt Delphi dann eine Datei Names "MData32.dll" erstellt. Jetzt frage ich mich aber, wie man diese Datei einbindet un z.B.: auf Die 'ERDEDSDR AVIRES "Erde.avi"' zugreift um sie in einem TAnimate Rahmen darzustellen ?!? So bis heute Abend dann, wäre über jede mögliche Lösung erfreut!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: AVI aus einer DLL

  Alt 4. Dez 2003, 07:32
Die Units kannst du aus der DLL rausschmeißen.

Dann kuck dir in der Hilfe mal die Klasse TResourceStream an, damit sollte sich schon was anfangen lassen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
xavior

Registriert seit: 1. Dez 2003
Ort: Wuppertal
91 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: AVI aus einer DLL

  Alt 4. Dez 2003, 11:49
Welche Units den ???

  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#4

Re: AVI aus einer DLL

  Alt 4. Dez 2003, 11:54
Wahrscheinlich diese hier:

Delphi-Quellcode:
uses
  SysUtils,
  Classes;
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
xavior

Registriert seit: 1. Dez 2003
Ort: Wuppertal
91 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: AVI aus einer DLL

  Alt 4. Dez 2003, 12:04
OK hab ich jetzt gemacht! Aber das beantwortet noch immer nich meine Frage! Wie stell ich das den jetzt an das ich die 'ERDEDSDR AVIRES "Erde.avi"' laden und abspielen kann? OK, mit TResourceStream, aber ich weis ja garnicht wo ich anfangn soll!!
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#6

Re: AVI aus einer DLL

  Alt 4. Dez 2003, 12:21
Da gibt es zwei Möglichkeiten:

Delphi-Quellcode:
FModuleHandle := LoadLibraryEx(PChar(FFileName), 0, LOAD_LIBRARY_AS_DATAFILE);

    AnimateV.CommonAVI := aviNone;

    AnimateV.ResHandle := FModuleHandle; // Hier die Exception

    If (StrToIntDef(Name, 0) <> 0) then
      AnimateV.ResID := StrToIntDef(Name, 0)
    else
      AnimateV.ResName := Name;

    AnimateV.Seek(1);
    AnimateV.Play(1, AnimateV.FrameCount, 0);
Delphi-Quellcode:
FModuleHandle := LoadLibraryEx(PChar(FFileName), 0, LOAD_LIBRARY_AS_DATAFILE);

    AnimateV.CommonAVI := aviNone;

    If (StrToIntDef(Name, 0) <> 0) then
      SendMessage(AnimateV.Handle, ACM_OPEN, FModuleHandle, StrToIntDef(Name, 0))
    else
      SendMessage(AnimateV.Handle, ACM_OPEN, FModuleHandle, Integer(@Name[1]));

    SendMessage(AnimateV.Handle, ACM_PLAY, -1, MAKELONG(0, Word(-1)));
Die obere ist die eigentlich korrekte Vorgehensweise. Da dies zumindest bei mir manchmal nicht funktioniert, verwende ich die untere Methode.
  Mit Zitat antworten Zitat
xavior

Registriert seit: 1. Dez 2003
Ort: Wuppertal
91 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: AVI aus einer DLL

  Alt 4. Dez 2003, 12:33
OK danke, aber jetzt kommt bei mir diese Meldung: 'AVI kann nicht geöffnet werden' und das Programm kackt ab! Wie kann ich eigetlich die Position der AVI bestimmen z.B.: bei Erde.avi ?

Ich hab den Sourcecode folgendermaßen verändert:

Delphi-Quellcode:

 FModuleHandle := LoadLibraryEx(PChar('MData32.dll'), 0, LOAD_LIBRARY_AS_DATAFILE);
 Hund.CommonAVI := aviNone;
 Hund.ResHandle := FModuleHandle; // Hier die Exception <---- Hier kommt der Fehler
{If (StrToIntDef(Name, 0) <> 0) then
  Hund.ResID := StrToIntDef(Name, 0)
else
  Hund.ResName := Name;
  Hund.Seek(1);
  Hund.Play(1, Hund.FrameCount, 0);   }
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#8

Re: AVI aus einer DLL

  Alt 4. Dez 2003, 12:50
Zitat von xavior:
Hund.ResHandle := FModuleHandle; // Hier die Exception <---- Hier kommt der Fehler
[/delphi]
Was ist der Unterschied zwischen einem Fehler und einer Exception? Es gibt keinen.

Nein, im Ersnt ich hatte ja geschrieben, das die obere Version aus irgendeinem Grund nicht immer klappt, deswegen habe ich ja zwei Beispiele gegeben. Das unter funktioniert immer, allerdings muss man auf den Komfort der Komponente verzichten.
  Mit Zitat antworten Zitat
xavior

Registriert seit: 1. Dez 2003
Ort: Wuppertal
91 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: AVI aus einer DLL

  Alt 4. Dez 2003, 13:08
Achso, dann versuch ich das untere! Aber, was sind ACM_OPEN & ACM_PLAY für Variablen? Und wie kan ich die Position der Datei bestimmen, wenn ich (z.B.: in meinem Fall) mehrer sachen in der DLL habe?
  Mit Zitat antworten Zitat
xavior

Registriert seit: 1. Dez 2003
Ort: Wuppertal
91 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: AVI aus einer DLL

  Alt 4. Dez 2003, 13:59
Hallo?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:42 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