Ik heb een ActiveX plugin waarvan ik weet dat deze in MS Visual C++ is geschreven Ik heb ook een MSVC app die deze plugin gebruik die prima werkt. Nu wil ik deze plugin ook in Borland C++ Builder gebruiken, maar ik krijg dat absoluut niet voor elkaar... Ik heb alles al geprobeerd wat in me op kwam om hem werkend te krijgen, maar zonder resultaat. Zodra ik de DLL registreer via regsvr32 staat ie netjes in mijn lijst met AvtiveX componenten. Zodra ik de DLL nu importeer via Component | Import ActiveX, gaat importeert/build ie alles perfect zonder enige foutmeldingen en/of warnings. De componenten komen ook keurig in de ActiveX toolbar.
MAAR zodra ik nu een van deze componenten probeer te gebruiken op door ze simpelweg op het Form te slepen geeft Borland *gelijk* de foutmelding "No such interface supported." en zal het component ook niet op het formulier verschijnen.
Ook als ik probeer om de component runtime aan te maken door de header file xxxLib_OCX.h te importeren en het component runtime probeer aan te maken:
Txxx *bla = new Txxx(Owner);
geeft Borland de volgende foutmelding zodra hij de code probeert uit te voeren.
Project Project1.exe raised exception class EOleSysError with message 'No such interface supported'..
Process stopped. Use Step or Run to continue.
Omdat ik het component toch in Borland C++ Builder moet zien te krijgen ging ik maar wat andere dingen proberen:
ik heb de DLL gekopieerd en deze naar een TLB gerenamed. Deze geopend met C++Builder, en ik krijg een keurige lijst met methods en properties. Deze typelibrary opgeslagen en vervolgens de originele DLL weer ge-unrgeistered met regsvr32. Vervolgens heb ik deze file geinstalleerd via import type library. Het viel me hier op dat Borland nu naast xxxLib_OCX nu ook een file xxxLib_TLB genereerd welke hij niet aanmaakt als je de ActiveX component direct importeerd.
Zodra ik nu de componenten op de ActiveX toolbar naar het formulier sleep gaat dat prima, ook het compileren gaat prima. Nu regsitreer ik de originele DLL weer, zodat deze gevonden en gebruikt kan worden door windows. Zodra ik nu een Connect() probeer wordt de volgende foutmelding gegenereerd:
HRCHECK:
'src->QueryInterface(GetIID(),(LPVOID*)(&intf))': No such interface supported @ c:\program files\borland\cbuilder6\include\vcl\utilcls.h/3002
Press [Y]es to terminate, [N]o to continue and [C]ancel to Debug
(offtopic: hoe kan ik trouwens [Y]es to terminate, [N]o to continue AND [C]ancel to Debug klikken?
)
Ik ben er van overtuigd dat het echter toch moet kunnen om deze file te importeren en te gebruiken in C++Builder, en dat ik wat fout doe of iets vergeet... Is er een manier om deze DLL toch werkend te krijgen? Bijvoorbeeld door een kleine aanpassing te maken in de gegenereerde OCX (of TLB) file?
En wat is de theorie achter deze melding? En wanneer wordt deze gegenereerd?
En uiteraard is elke tip/opmerking welkom, en niet alleen de oplossing
Alvast bedankt!
MAAR zodra ik nu een van deze componenten probeer te gebruiken op door ze simpelweg op het Form te slepen geeft Borland *gelijk* de foutmelding "No such interface supported." en zal het component ook niet op het formulier verschijnen.
Ook als ik probeer om de component runtime aan te maken door de header file xxxLib_OCX.h te importeren en het component runtime probeer aan te maken:
Txxx *bla = new Txxx(Owner);
geeft Borland de volgende foutmelding zodra hij de code probeert uit te voeren.
Project Project1.exe raised exception class EOleSysError with message 'No such interface supported'..
Process stopped. Use Step or Run to continue.
Omdat ik het component toch in Borland C++ Builder moet zien te krijgen ging ik maar wat andere dingen proberen:
ik heb de DLL gekopieerd en deze naar een TLB gerenamed. Deze geopend met C++Builder, en ik krijg een keurige lijst met methods en properties. Deze typelibrary opgeslagen en vervolgens de originele DLL weer ge-unrgeistered met regsvr32. Vervolgens heb ik deze file geinstalleerd via import type library. Het viel me hier op dat Borland nu naast xxxLib_OCX nu ook een file xxxLib_TLB genereerd welke hij niet aanmaakt als je de ActiveX component direct importeerd.
Zodra ik nu de componenten op de ActiveX toolbar naar het formulier sleep gaat dat prima, ook het compileren gaat prima. Nu regsitreer ik de originele DLL weer, zodat deze gevonden en gebruikt kan worden door windows. Zodra ik nu een Connect() probeer wordt de volgende foutmelding gegenereerd:
HRCHECK:
'src->QueryInterface(GetIID(),(LPVOID*)(&intf))': No such interface supported @ c:\program files\borland\cbuilder6\include\vcl\utilcls.h/3002
Press [Y]es to terminate, [N]o to continue and [C]ancel to Debug
(offtopic: hoe kan ik trouwens [Y]es to terminate, [N]o to continue AND [C]ancel to Debug klikken?
Ik ben er van overtuigd dat het echter toch moet kunnen om deze file te importeren en te gebruiken in C++Builder, en dat ik wat fout doe of iets vergeet... Is er een manier om deze DLL toch werkend te krijgen? Bijvoorbeeld door een kleine aanpassing te maken in de gegenereerde OCX (of TLB) file?
En wat is de theorie achter deze melding? En wanneer wordt deze gegenereerd?
En uiteraard is elke tip/opmerking welkom, en niet alleen de oplossing
Alvast bedankt!