Giddion Skrevet 26. juli 2006 Skrevet 26. juli 2006 (endret) Problemet er i et par klasser som jeg har hentet fram, den finner UPnP Control Points. (aka alle ting som støtter Upnp) Modulet finner UPnP enheter helt fint og lagrer de i en std::vector, men når jeg skal hente de opp igjen virker det som om minne er korrupt og jeg får feil. Denne koden er kun win32, men jeg velger å legge den her siden jeg tror feilen ligger i C++ koden. litt om klassene: NUPnP er klassene som styrer alt og setter i gang søket via COM objektet IID_IUPnPDeviceFinder CUPnPDeviceFinderCallback er en callback klasse (doh) som funksjonene blir kjørt etter hvert som søkene før resultater DeviceAdded er funksjonen som blir kjørt når man finner en CP. Problemet: NUPnP::FindInternettGateway klikker når den kaller på funksjoner fra tidligere lagrede CP Hvordan skal jeg debugge dette?? UNICODE #include "NUPnP.h" NUPnP test; test.FindDevices(TEXT("UPnP:rootdevice")); test.FindInternettGateway(); ASCII #include "NUPnP.h" NUPnP test; test.FindDevices("UPnP:rootdevice"); test.FindInternettGateway(); Takker på forhånd for all hjelp jeg kan få edit: opps glemte å legge ved koden YNet.zip Endret 13. august 2006 av Giddion
john.einar Skrevet 12. august 2006 Skrevet 12. august 2006 Gammel thread, men problemet ditt er vel at du tar aldri å AddRef'er til dine IUPnPDevice så de blir sletta utenfor din DeviceAdded func. Du må AddRef'e når du tar å lagrer en pointer til et COM objekt for senere, så ikke COM biblioteket sletter objektet når alle andre har frigjort sine referanser. Du må da også huske å Release når du tømmer din std::vector (i dtor).
Giddion Skrevet 13. august 2006 Forfatter Skrevet 13. august 2006 Først vil jeg takke for at du tok det tid til å kikke på posten. Og takk mange mange ganger det funker som smurt nå. Jeg hadde helt gitt opp denne posten for en stund siden. Jeg trodde at UPnPDeviceFinder eller/og UPnPDeviceFinderCallback hadde ansvarer for unloadingen av IUPnPDevice, så hvis jeg ventet med å release de så ville alt fungere, men tydlig vis har jeg mye å lære om COM. Og takk igjen mange mange ganger.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå