Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#21

AW: Interface 'IAudioEndpointVolume' läuft unter TurboDelphi aber nicht unter Delphi1

  Alt 26. Nov 2016, 18:47
Zitat:
Du hattest das in Post7 mit dem Boolean-Wert auf der einen Seite und dem Integer-Wert auf der anderen Seite etwas falsch interpretiert
Zitat:
Woher bekommt MuteStatus : boolean; seinen Wert?
Getmute liefert einen INTEGER-Wert zurück.

Ersetze MMDevAPI:
Ok das war alles falsch basierend auf dein Schnipsel.
BOOL und HRESULT wäre richtig gewesen, aber gut.

Zitat:
so dass ich tatsächlich nochmal einen dritten Anstoß von EWeiss in diese Richtung brauchte.
Na ja himitsu hat da im Beitrag 8 schon drauf hingewiesen.
Zitat:
"Boolean" (1 Byte) ist auch falsch, da BOOL dem LongBool (4 Byte) entspricht.
Das wäre alles nicht passiert wenn du die Interface selbst übersetzt hättest.
Wie schon gesagt da ist noch einiges im argen.

Einfaches Beispiel..
Die richtige Code-Zeile für GetMute sieht aus wie folgt.

function GetMute(var pbMute: BOOL): HRESULT; stdcall; Durch den var Parameter pbMute hättest du Boolean gar nicht erst übergeben können (Der Fehler wäre also niemals aufgetreten)
Dann wie Zacherl schon sagte ist die Rückgabe HRESULT nicht Integer.. wenn schon dann "LongInt"
usw..

gruss

Geändert von EWeiss (26. Nov 2016 um 19:11 Uhr)
  Mit Zitat antworten Zitat