![]() |
Inkompatibilität Delphi und VB6 via ActiveX bei VARIANT_BOOL
Liste der Anhänge anzeigen (Anzahl: 2)
Hallöchen, :hi:
wollte eine Library in Delphi 2006 schreiben, die dann andere in VB6 Anwendungen einbauen sollten. Funktioniert größtenteils auch recht gut, aber ich hatte da eine Inkompatibilität im Zusammenhang mit VARIANT_BOOLs und Records: Sobald man so ein VARIANT_BOOL Feld einbaut, scheint danach die Record-Anordnung nichtmehr zu stimmen. Ändert man manuell in der generierten _TLB.pas den Datentyp WordBool in LongBool, so crasht VB6 bei der Verwendung nicht; allerdings ändert der Delphi Codegenerator das sofort zurück, so dass man diese Änderung nur einmal ausprobieren kann. Einen Screenshot der TLB habe ich angehängt (Wobei die Felder die Typen BSTR - VARIANT_BOOL - BSTR sind). Ich habe ein Beispielprojekt angehängt, das das Problem demonstriert. Dazu muss zu erst die Delphi-DLL mit "regsvr32" oder via Delphi IDE registriert werden. Wenn man es dann startet sieht man, dass der erste String funktioniert, der VARIANT_BOOL auch aber dann schmiert das Programm (bzw. die VB6 IDE) mit einer Schutzverletzung :wall: ab. Ist das ein Bug in Delphi :gruebel:? Meiner Meinung müsste hinter dem VARIANT_BOOL noch ein Padding von 16Bit rein, aber wenn man keine Ahnung einfach mal Fr**** halten :) Wär super, wenn sich das mal einer anschauen könnte! Vielen Dank im Vorraus :hello: |
Re: Inkompatibilität Delphi und VB6 via ActiveX bei VARIANT_
Hab den Bug bei Borland gemeldet und er wurde auch geöffnet. Demnach kann ich diese Frage wohl schließen...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz