![]() |
Datendefinition
Hallo zusammen,
bei der Umstellung eines Programmes auf eine neue OLE-Server Version erhalte ich beim kompilieren den Fehler: [DCC Fehler] AdeskApprentice.pas(223): E2010 Inkompatible Typen: 'ActiveX.IPictureDisp' und 'Inventor_TLB.IPictureDisp' bei:
Delphi-Quellcode:
SetOlePicture(Thumb, doc.Thumbnail);
In AxtiveX ist:
Delphi-Quellcode:
in der neuen importierten .tlb ist:
{$EXTERNALSYM IPictureDisp}
IPictureDisp = interface(IDispatch) ['{7BF80981-BF32-101A-8BBB-00AA00300CAB}'] end;
Delphi-Quellcode:
d.h. IPictureDisp ist hier auch deklariert.
const
IID_IPictureDisp: TGUID = '{7BF80981-BF32-101A-8BBB-00AA00300CAB}'; type IPictureDisp = interface; // *********************************************************************// // Interface: IPictureDisp // Flags: (4096) Dispatchable // GUID: {7BF80981-BF32-101A-8BBB-00AA00300CAB} // *********************************************************************// IPictureDisp = interface(IDispatch) ['{7BF80981-BF32-101A-8BBB-00AA00300CAB}'] end; In der alten .tlb der Vorgängerversion war in der uses Klausel ActiveX mit eingebunden so dass diese Definition gilt. Meine Frage ist nun: Wie kann ich nun erreichen, daß die Dinger formal kompatibel sind (Müssen sie ja eigentlich sein, da die TGUID die gleiche ist) |
Re: Datendefinition
Der naheliegende Aufruf:
SetOlePicture(Thumb, ActiveX.IPictureDisp(doc.Thumbnail)); das Ding also zu konvertieren, geht und scheint auch zu funktionieren. Find ich allerdings unschön. Gibt es da nicht bessere Möglichkeiten? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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