Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   IInterface Delphi vs VSC (https://www.delphipraxis.net/193456-iinterface-delphi-vs-vsc.html)

EWeiss 3. Aug 2017 10:55

AW: IInterface Delphi vs VSC
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1377997)
Zitat:

Zitat von EWeiss (Beitrag 1377994)
Code:
   IUnknown **ppObject;
   IUnknown **ppUnk;
werden dabei aber nicht direkt angesprochen.

Ich denke, dann kannst du das so lassen.

OK dann ist das geklärt.
Danke.

gruss

EWeiss 9. Aug 2017 23:03

AW: IInterface Delphi vs VSC
 
irgendwie will das immer noch nicht.

Code:
BOOL KVIDEOPLAYERDEF(KVideo_GetStreamInfo)(TStreamType StreamType, DWORD index, TStreamInfo OUT StreamInfo);
Die Rückgabe von..
Code:
struct TStreamInfo {
    TStreamType streamType;
    AM_MEDIA_TYPE ppmt;
    unsigned int pdwFlags;
    unsigned int plcid;
    unsigned int pdwGroup;
    wchar_t* ppszName;
    IUnknown **ppObject;
    IUnknown **ppUnk;
  };
typedef TStreamInfo* pStreamInfo;
ist NULL

Hmmm...
Ob das mit den Interface doch nicht stimmt?

gruss

Zacherl 10. Aug 2017 00:05

AW: IInterface Delphi vs VSC
 
Da prüft aber auch jemand seine eigenen Rückgabewerte nicht :warn: :-D Ist der Funktionsaufruf am Ende auf Seite der DLL einfach schon nicht erfolgreich?

Ansonsten:
Als was ist
Delphi-Quellcode:
OUT
definiert? Macro auf
Delphi-Quellcode:
*
?

EWeiss 10. Aug 2017 00:15

AW: IInterface Delphi vs VSC
 
Zitat:

Zitat von Zacherl (Beitrag 1378456)
Da prüft aber auch jemand seine eigenen Rückgabewerte nicht :warn: :-D Ist der Funktionsaufruf am Ende auf Seite der DLL einfach schon nicht erfolgreich?

Ansonsten:
Als was ist
Delphi-Quellcode:
OUT
definiert? Macro auf
Delphi-Quellcode:
*
?

OUT ist definiert
Delphi-Quellcode:
function KVideo_GetStreamInfo(StreamType: TStreamType; index: Cardinal;
      out StreamInfo: TStreamInfo): BOOL; stdcall;
StreamInfo hat alle werte die zur verfügung stehen.
sie kommen aber in C++ nicht an.

[DELPHI]Macro auf *
verstehe ich jetzt nicht.

Wenn ich die Daten analysiere sind sie vorhanden ich kann sie sehen als ToolTip
wenn ich aber durch bin zeigt der ToolTip nix mehr. (Delphi)

gruss

Zacherl 10. Aug 2017 00:17

AW: IInterface Delphi vs VSC
 
In C++ gibt es sowas wie
Delphi-Quellcode:
var
oder
Delphi-Quellcode:
out
nicht. Hab grade nochmal nachgeschaut: Das
Delphi-Quellcode:
OUT
Macro aus der Windows.h dient lediglich der Dokumentation und hat im Grunde aber wirklich keine Auswirkung. Du musst alle
Delphi-Quellcode:
var
und
Delphi-Quellcode:
out
Parameter in C++ als Pointer umsetzen, also statt
Delphi-Quellcode:
TStreamInfo
muss es
Delphi-Quellcode:
pStreamInfo
bzw.
Delphi-Quellcode:
TStreamInfo*
sein:

Delphi-Quellcode:
BOOL KVIDEOPLAYERDEF(KVideo_GetStreamInfo)(TStreamType StreamType, DWORD index, TStreamInfo* StreamInfo);


Der Aufruf entsprechend:
Delphi-Quellcode:
TStreamInfo streamInfo;
KVideo_GetStreamInfo(streamType, index, &streamInfo);

EWeiss 10. Aug 2017 00:27

AW: IInterface Delphi vs VSC
 
Zitat:

Zitat von Zacherl (Beitrag 1378459)
In C++ gibt es sowas wie
Delphi-Quellcode:
var
oder
Delphi-Quellcode:
out
nicht. Hab grade nochmal nachgeschaut: Das
Delphi-Quellcode:
OUT
Macro aus der Windows.h dient lediglich der Dokumentation und hat im Grunde aber wirklich keine Auswirkung. Du musst alle
Delphi-Quellcode:
var
und
Delphi-Quellcode:
out
Parameter in C++ als Pointer umsetzen, also statt
Delphi-Quellcode:
TStreamInfo
muss es
Delphi-Quellcode:
pStreamInfo
bzw.
Delphi-Quellcode:
TStreamInfo*
sein:

Delphi-Quellcode:
BOOL KVIDEOPLAYERDEF(KVideo_GetStreamInfo)(TStreamType StreamType, DWORD index, TStreamInfo* StreamInfo);


Der Aufruf entsprechend:
Delphi-Quellcode:
TStreamInfo streamInfo;
KVideo_GetStreamInfo(streamType, index, &streamInfo);

Danke werde es mal versuchen.
Seltsam aber das es hier funktioniert auch mit OUT.

Code:
BOOL KVIDEOPLAYERDEF(KVideo_GetMediaProperty)(TMediaProperty* OUT MediaProperty);
Ich denke aber das liegt wohl eher am Pointer *

gruss

Zacherl 10. Aug 2017 00:33

AW: IInterface Delphi vs VSC
 
Zitat:

Zitat von EWeiss (Beitrag 1378460)
Ich denke aber das liegt wohl eher am Pointer *

Genau, hier hast du ja den Pointer. Das
Delphi-Quellcode:
OUT
macht wirklich absolut gar nichts :-D

EWeiss 10. Aug 2017 00:35

AW: IInterface Delphi vs VSC
 
Zitat:

Zitat von Zacherl (Beitrag 1378461)
Zitat:

Zitat von EWeiss (Beitrag 1378460)
Ich denke aber das liegt wohl eher am Pointer *

Genau, hier hast du ja den Pointer. Das
Delphi-Quellcode:
OUT
macht wirklich absolut gar nichts :-D

Danke funktioniert mit deiner Hilfe also alles nur Makulatur mit dem OUT und IN zur eigenen Kontrolle vielleicht. LOL

gruss

EWeiss 10. Aug 2017 00:37

AW: IInterface Delphi vs VSC
 
sollte ich das in Delphi
Delphi-Quellcode:
    ppObject: IInterface;
    ppUnk: IInterface;
mit
Delphi-Quellcode:
    ppObject: IUnknown;
    ppUnk: IUnknown;
ersetzen oder so belassen.
Weil auch in DirectShow is es als IUnknown definiert.

gruss

TiGü 10. Aug 2017 09:25

AW: IInterface Delphi vs VSC
 
Zitat:

Zitat von EWeiss (Beitrag 1378463)
sollte ich das in Delphi
Delphi-Quellcode:
    ppObject: IInterface;
    ppUnk: IInterface;
mit
Delphi-Quellcode:
    ppObject: IUnknown;
    ppUnk: IUnknown;
ersetzen oder so belassen.
Weil auch in DirectShow is es als IUnknown definiert.

Das ist total egal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 Uhr.
Seite 3 von 4     123 4      

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