AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi XE und Windows 7 BMP -> AVI
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi XE und Windows 7 BMP -> AVI

Ein Thema von fishbrain · begonnen am 23. Feb 2011 · letzter Beitrag vom 8. Sep 2011
Antwort Antwort
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Delphi XE und Windows 7 BMP -> AVI

  Alt 7. Sep 2011, 09:07
Sollte ich vor jeder Kompileransweisung einen Punkt vor dem Dollarzeichen setzen?
Nein

Die Compileranweisung sorgt ja gerade dafür, dass es eben mit Unicode (also Delphi > 2007) funktionieren soll. Der Fehler wird wo anders liegen.
Leider kann ich Dir nicht sagen, wo genau. Hab wie gesagt kein Delphi mit Unicode

Gruß, Chris
P.S.: Viel Erfolg weiterhin
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Delphi XE und Windows 7 BMP -> AVI

  Alt 7. Sep 2011, 09:16
Ich weiss nicht genau was du machen willst
aber warum verwendest du nicht die VFW.pas ?

Damit spiele ich mein Video in meinem Visualisierungs Plugin ab.
Wobei hier jedes Frame in eine Texture umgewandelt wird. (OpenGL)

Keine ahnung ob dir das hilft.

EDIT!
Die Unicode flags bringen hier leider nichts.
Du solltest für nicht Unicode AVIFileOpen..
und für Unicode AVIFileOpenW
verwenden

Unicode! (OpenGL)

Delphi-Quellcode:
procedure OpenAVI(filename : PWideChar; var AnimTex: array of TMmTex; Index: Integer);
begin
  AVIFileInit;

  if AVIFileOpenW(AviFile, FileName, OF_READ or OF_SHARE_DENY_WRITE, nil) = 0 then
  begin
    AVIFileInfo(AVIFile, @AVIInfo, SizeOf(AviInfo));
    AVIStreamOpenFromFileW(AVIStream, FileName, streamtypeVIDEO, 0, OF_READ, nil);
    AVIStreamInfo(AVIStream, @StreamInfo, SizeOf(StreamInfo));
    AVILength :=AVIStreamLengthTime(AVIStream);
    GetMem(FrameData, AVIInfo.dwWidth*AVIInfo.dwHeight * 3);

    GetFramePointer :=AVIStreamGetFrameOpen(AVIStream, nil);

    AnimTex[Index].Texture := CreateTexture(AviInfo.dwWidth, AviInfo.dwHeight, GL_RGB, FrameData);
  end
  else
    MessageBox(0, 'Failed To Open The AVI Stream', 'Error', MB_OK OR MB_ICONEXCLAMATION);
end;
PS:
Delphi-Quellcode:
function AVIFileCreateStreamW(pfile: PAVIFILE; var ppavi: PAVISTREAM; psi: PAVISTREAMINFOW): HResult; stdcall;
function AVIFileCreateStreamA(pfile: PAVIFILE; var ppavi: PAVISTREAM; psi: PAVISTREAMINFOA): HResult; stdcall;
Zitat:
Denn diese Funktion stellt sich generisch um zwischen WideString und AnsiString.
Mit sicherheit nicht! Denn es gibt dafür direkte Unicode Funktionen
Siehe W! und A!


gruss

Geändert von EWeiss ( 7. Sep 2011 um 10:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Pussyranger
Pussyranger

Registriert seit: 15. Mär 2011
25 Beiträge
 
Delphi XE2 Architect
 
#3

AW: Delphi XE und Windows 7 BMP -> AVI

  Alt 7. Sep 2011, 14:56
Danke für eure Hilfe! Jetzte klappt es

Anstatt AVIFileOpen() musste ich nur AVIFileOpenW() aufrufen.
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Delphi XE und Windows 7 BMP -> AVI

  Alt 7. Sep 2011, 17:06

Das hätten die Compilerbedingungen - also die {$IFDEF Unicode} - erledigen sollen

BTW: Das W am ende steht in diesem Fall für WideString wohingegen die entsprechende Methode mit A am Schluss die AnsiString-Variante ist.

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Delphi XE und Windows 7 BMP -> AVI

  Alt 8. Sep 2011, 03:57
Zitat:
Das hätten die Compilerbedingungen - also die {$IFDEF Unicode} - erledigen sollen
Wird nicht aktzeptiert.. weil
var ppfile: PAVIFILE; Die Typen der tatsächlichen und formalen Var-Parameter übereinstimmen müssen.

Für den Compiler selbst stimmen sie dann auch sonst ließe es sich nicht kompilieren.
Aber das trifft nicht für die API(Funktion) selbst zu.

gruss
  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 19:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz