Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#17

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

  Alt 26. Nov 2016, 16:24
Ok, nachdem ich in der Interface-Unit bzgl. dieser GetMute-Funktion nun das Boolean durchs Bool ersetzt habe (und das auch noch in meinem Prog getan habe), sind die Exceptions verschwunden. Thx all. Müssten demnach dann nicht eigentlich auch noch alle übrigen Boolean-Typen in dieser Interface-Unit durch ein Bool ausgewechselt werden? Nehme mal an, ja. Hatte diese Unit irgendwann mal aus dem Netz gedownloaded. Und wie gesagt: Mit TurboDelphi hatte es immer problemlos geklappt.
Jap mit ziemlicher Sicherheit. Microsoft Schnittstellen bzw. C im allgemeinen verwendet in der Regel 4-Byte Booleans (= BOOL). Dass es vorher geklappt hat war reiner Zufall, da du dir mit den falschen Parametern auf jeden Fall den Stack kaputt machst. Die Integer Results sind btw. auch falsch, das müsste HRESULT sein und stdcall kannst du mit safecall ersetzen, wenn du lieber Exceptions statt Error-Codes hast. Generell solltest du auf jeden Fall die Fehlercodes von MSDN-Library durchsuchenCoCreateInstance und den Interface Methoden prüfen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat