AGB  ·  Datenschutz  ·  Impressum  







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

TBCEnumPins

Ein Thema von SonnyBoyPro · begonnen am 13. Okt 2014
Antwort Antwort
SonnyBoyPro

Registriert seit: 9. Mai 2007
68 Beiträge
 
#1

TBCEnumPins

  Alt 13. Okt 2014, 21:30
Hallo zusammen,

ich bin gerade am Basteln eines Direct-Show Filewrite-Filter. Dazu hab ich mal das Dump-Example
aus dem DSPack compiliert und getestet --> Absturz. Sowohl unter Lazarus als auch unter Delphi XE.

Folgende Codestelle hab ich nun in der Funktion TBCEnumPins.Next als den Übeltäter ausfindig gemacht:
Delphi-Quellcode:
 // We only want to return this pin, if it is not in our cache
      if FPinCache.IndexOf(Pin) = -1 then
      begin
        // From the object get an IPin interface
        TPointerDynArray(ppPins)[Fetched] := nil; // hier knallts
        TIPinDynArray(ppPins)[Fetched] := Pin;
        inc(Fetched);
        FPinCache.Add(Pin);
        dec(RealPins);

      end;
Laut MSDN für IEnumPins::Next method : ppPins [out]
Array of size cPins that is filled with IPin pointers. The caller must release the interfaces.

also hab ich mal abgeändert auf
Delphi-Quellcode:
var
lPin: TIPinDynArray;
...
// From the object get an IPin interface
        SetLength(lPin,Fetched+1);
        lPin[Fetched]:=nil;
        lPin[Fetched]:=Pin;
        ppPins:=lPin[0];

        inc(Fetched);
        FPinCache.Add(Pin);
        dec(RealPins);
Meiner Meinung nach kann der Orginal-Code gar nicht funktionieren. oder war das Compiler-Verhalten von Delphi < XE anders? Und wenn nicht, warum ist das nie jemanden aufgefallen . Dr. Google schweigt. und DS Pack ist ja nicht gerade neu (nicht negativ gemeint) ....

Zumindest läufts mal, und der Filter wird in GraphEdit angezeigt. Mich tät halt interessieren ob's so richtig ist, oder ob ich noch was ändern/aufpassen muss.

bg
  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 23:19 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