Hej! Nu vet jag inte om du kör detta i IIS eller PWS för då måste du stänga webbservern innan du kan lägga dit den nya DLL-en, den ligger nämligen igång och skvalpar i webbserverns minne. ok, det beror på webbservern...Tack för hjälpen! dig kan man alltid lite på!!:) hm, även om jag stänger av webbservern går det inte att spara över den gamla dll'en (det är alltså inte registreringen som det är problem med). Jag måste starta om datorn, vilket är rätt irreterande... Några rå? det är ett problem som är vida känt .. problemet härstammar från att system ngnstans ligger och håller en referens mot dll'n fortfarande... Är mycket bökigt .. Den definitiva lösningen heter .NET. Men det kanske inte hjälper så mycket just nu... :) komponenter använder sk Interface, varje interface defineras av en klassmoduls medlemmar som tex subar och UDTr mm. Dessa interfacets medlemmar är de som visas i vbs intelisense. "Programming Distributed Applications using COM+ and Visual Basic 6", tror jag den heter (hans senaste alltså). Fullständigt fantastiskt heltäckande och innehållsrik. Klar rekommendation.Registrerings problem
När jag gjort en ActiveX dll, compilerat den och registrerat den (med regsvr32), så går det inte att kompilera om dll'en (projektet). Datorn ber mig att kontrollera om disken är skrivskyddad... och då tänkte jag att jag måste nog avregistrera dll'en först (med regsvr32 -u)... men det hjälpte ju inte. så nu har jag alltså varit tvungen att döpa om filen, compilera och registrera med nytt namn... inte så bra
Vad göra??
tacksam för hjälp
/peterbladhSv: Registrerings problem
/PelleSv: Registrerings problem
Ja, jag testade den på en pws. Är det samma problematik på iis?Sv: Registrerings problem
/peterbladhSv: Registrerings problem
det du kan göra är att se till att allt som refererar är nedstängt, ex vb miljöer iis com+ mm.. Jag antar att du har binary compability satt, det brukar också hjälpa en del ...
Är det ngn som har en definitv lösning på problemet ?? Pelle? Chrsitoffer? Ms?Sv: Registrerings problem
Annars kan jag inte säga mer än du sa Patrik, stoppa IIS (eller åtminstone den website som komponenten körs av), gör en shutdown på paketet i MTS/Component Services (om den kör där), se till att allt annat som refererar till den är nedstängt (VB IDE, klientprogram, annat...). Sen borde det gå.Sv: Registrerings problem
När man kompilerar en kompoenent, registreras interfacet i registret och de får en IID en GUID som är det interfacets unika adress. Det är via det IID't som vi sedan instansierar våra komponenter i kod. Även komponenten i sig får ett nytt GUID (LIBID) som refererar till hela libraryt.
Sätten att hantera dess Interface och deras IID är tre. Det första är no compability, då skapas ett nytt IID och LIBID (Och clsid men det behöver vi inte tänka på hä) för komponenten och för varje gång vi kompilerar Det innebär att tex program som använder komponent v1 inte kommer kunna dra nytta av kopmonent v2 (det finns iofs sätt att gå runt det här, men detta är basic), eftersom adressen förändrats
det andra är 'Project compability', innebär att när vi kompilerar om komponenten skapas inget nytt LIBID men däremot nyskapas alla IID'er.
det sista är 'binary compability'. 'Binary compability' säkerställer att interfacet inte förändrats. Dvs inga argument är annorlunda och metoderna finns kvar. 'Binary compability' tar LIBID och IID från en existerande komponent, jämför interface och com strukturen. Om de överensstämmer får den nya komponenten samma adress som den gamla och den gamla kan skrotas, men om de inte stämmer överens får vi ett felmeddelande.
Ett tips är att köpa en bok om komponenter. tex av Ted PattisonSv: Registrerings problem