Avatar billede eonix Nybegynder
25. januar 2007 - 09:50 Der er 1 løsning

Fjerne COM Metadata i .NET Cache ?

Hej - dette spørgsmål er en opfølgning på spørgsmålet om en Access Violation Exception fundet her: http://www.eksperten.dk/spm/757861

Efter at have kontaktet udvikleren af det oprindelige kode eksempel:

http://www.microsoft.com/belux/msdn/nl/community/columns/munoz/extendwmp_part1.mspx

har vedkommende opdateret koden, men erkender at der tilstadighed er et problem med pointer oprydningen.

Udvikleren skriver følgende til mig:

"The Access Violation is because.NET caches COM metadata information, so the next time the COM object is created, the CCW of the “fake” interface (see DECLARE_MANAGED_INTERFACE in my code) is incorrectly mapped to the unmanaged pointer. This happens only when the client (i.e. WMP) creates an object for the second time in the same process passing an IID other than IID_IUnknown to CoCreateInstance."

Hans kode findes her:

http://download.microsoft.com/download/d/f/c/dfc7a022-3426-4868-b23c-3818a6e54305/hellowmp.zip

-----------------------------------------------------------

Spørgsmålet er således hvordan man tilgår de såkaldte COM metadata - og får rydet op så det nedlagte "fake" interface ikke bliver brugt, men derimod et nyt "fake" interface.


Jeg må indrømme at jeg aldrig har hørt om en .NET Cache af COM metainformation, men håber at nogle af jer har en idé om hvordan problemet løses.


//EoniX
Avatar billede eonix Nybegynder
14. august 2009 - 11:41 #1
Projektet er lukket - lukker spørgsmålet også.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester