Jag har en ActiveX EXE komponent som jag anropar från huvudprogrammet. Jag skulle vilja att man ska kunna uppdatera (kompilera om) ActiveX Exe:n utan att huvudprogrammet behöver kompileras om. Går det? Problemet är väl att din ActiveX använder en referens när du registrerar den. Att när du sedan köra ditt huvudprogram, så letar programmet efter den referensnyckeln. Det jag tror att du är ute efter är binär kompatibilitet... När du markerar din ActiveX EXE för Binary Compatibility (på fliken Component i Project Properties) används samma CLSID när du kompilerar om EXE:n, vilket - som Pelle skriver - gör att ditt huvudprogram hittar din ActiveX EXE. Man tackar för hjälpen. Chris du är helt rätt åp det .. ActiveX EXE
Sv: ActiveX EXE
Vid kompileringen av din ActiveX så har jag för mig att det går att markera för att den gamla referensen skall ersättas av den nya - undrar om det inte fungerar då..
"Remove information about unused ActiveX Controls"
/PelleSv: ActiveX EXE
Detta fungerar dock bara så länge du inte ändrar i komponentens gränssnitt, dvs inte tar bort eller ändrar i några publika sub eller functions. Om du gör det måste du kompilera om både komponenten och huvudprogrammet.
Jag är dock inget proffs på ämnet; finns säkert någon annan som kan berätta mer... MS?
-CSv: ActiveX EXE
Jag har dock löst det genom att deklarera komponenten så här:
Dim mittObj as Object
och initiera den så här:
set mittObj=CreateObjekt("minKomponent.minKlass")
Jag vet inte om det är 'rätt sätt' att göra det på men det fungerar och man kan kompilera om komponenten utan att röra huvudprogrammet.Sv: ActiveX EXE
Komponenter handlar om sk interface dvs gränsnittet som du kallar det. Varje interface ahr en GUID i registret, sätter man binär kompabilitet med den gala exe används samma GUID vilket är den som är kompilerad i huvudprogrammet. Men om man ändrar ngt på metoder eller argument kommer interfacet intea att vara samma och vb kommer vägra att koppla det gamla GUID till din omkopilerade komponent ... (GUID = typeface id för de mer nitiska commarna :o)