Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Events von Delphi to C++

  Alt 5. Aug 2017, 03:04
Bekomme dann 2 Fehler
Code:
Fehler (aktiv)   E0167   Das Argument vom Typ ""void (__stdcall *)(TPlayerEvent event)"" ist mit dem Parameter vom Typ ""TPlayerEvent"" inkompatibel.

Fehler   C2664   "BOOL KVideo_Initialize(HWND,TPlayerEvent)" : Konvertierung von Argument 2 von "void (__cdecl *)(TPlayerEvent)" in "TPlayerEvent" nicht möglich
cpp..
Code:
void _stdcall OnPlayerEvent(TPlayerEvent event)
{
    if (event == TPlayerEvent::PlayEnded)
    {
        KillTimer(MovieHandle, MOVIE_TIMER);
    }
}

if (KVideo_Initialize(MovieHandle, OnPlayerEvent))
h..
Code:
enum class TPlayerEvent : std::uint8_t {
  PlayEnded,
  ErrorEnded
};

typedef void ( * CBEventNotice )(TPlayerEvent);

BOOL KVIDEOPLAYERDEF(KVideo_Initialize)(HWND MediaWindow, TPlayerEvent callback);
EDIT:
Ok habe das geändert.
Jetzt lässt es sich wieder kompilieren.
Code:
BOOL KVIDEOPLAYERDEF(KVideo_Initialize)(HWND MediaWindow, CBEventNotice event);
Aber es wird immer noch kein Event ausgelöst. Hmmm...
Das kann ich nicht ändern.
Code:
typedef void _stdcall( * CBEventNotice )(TPlayerEvent);
produziert den Fehler.

Zitat:
Fehler (aktiv) E0651 Auf eine Aufrufkonvention darf kein geschachtelter Deklarator folgen.
Fehler C2059 Syntaxfehler: "("
Fehler C2061 Syntaxfehler: Bezeichner "CBEventNotice"
Fehler C2660 "KVideo_Initialize": Funktion akzeptiert keine 2 Argumente
gruss

Geändert von EWeiss ( 5. Aug 2017 um 03:20 Uhr)
  Mit Zitat antworten Zitat