Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. COM
  4. Removing COM dll from memory

Removing COM dll from memory

Scheduled Pinned Locked Moved COM
comperformancetutorialquestionannouncement
2 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    sandeepkavade
    wrote on last edited by
    #1

    hi all, i have a dll say abc.dll loaded in memory and i have to unload abc.dll and load another dll of same name but it may differ in version number. i tried to unregister the first dll and register the second dll programatically. but still the code refers to the first dll. I think its because the first dll is still in memory. Am i right? Then how to completely remove the that dll from memory? I also renamed the first dll after unregistering it and then registered the second one. but it doesnt work.

    J 1 Reply Last reply
    0
    • S sandeepkavade

      hi all, i have a dll say abc.dll loaded in memory and i have to unload abc.dll and load another dll of same name but it may differ in version number. i tried to unregister the first dll and register the second dll programatically. but still the code refers to the first dll. I think its because the first dll is still in memory. Am i right? Then how to completely remove the that dll from memory? I also renamed the first dll after unregistering it and then registered the second one. but it doesnt work.

      J Offline
      J Offline
      Jorgen Sigvardsson
      wrote on last edited by
      #2

      If you look here: http://msdn.microsoft.com/en-us/library/ms690368(VS.85).aspx[^], you'll see:

      MSDN says:

      Notes to Callers You should not have to call DllCanUnloadNow directly. OLE calls it only through a call to the CoFreeUnusedLibraries function. When it returns S_OK, CoFreeUnusedLibraries frees the DLL.

      You should call CoFreeUnusedLibraries after unregistering it. Also make sure that you have no live COM objects created by the DLL. If not, the DLL will have a reference count > 0, meaning that DllCanUnloadNow will return S_FALSE. It could also be the case that reference counting in the DLL is buggy.

      -- Kein Mitleid Für Die Mehrheit

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups