How to keep a C++ com dll in memory (repost)
-
I have a com dll written in C++ which is used in asp applications. The dll contains only one com object. There are static (global to the process) data objects within this dll. Obviously, I only want to initialize these static objects when the dll is first loaded. However, IIS seems to be reloading my dll everytime the com object is created and used in an asp page. P.S. Already tried the trick of returning S_FALSE in DllCanUnloadNow, doesn't really work. For VB6 com dll, you can set a project property "Retained in memory" which is exactly what I need. Don't know if the same can be done with VC++ com dll.
-
I have a com dll written in C++ which is used in asp applications. The dll contains only one com object. There are static (global to the process) data objects within this dll. Obviously, I only want to initialize these static objects when the dll is first loaded. However, IIS seems to be reloading my dll everytime the com object is created and used in an asp page. P.S. Already tried the trick of returning S_FALSE in DllCanUnloadNow, doesn't really work. For VB6 com dll, you can set a project property "Retained in memory" which is exactly what I need. Don't know if the same can be done with VC++ com dll.
Anonymously wrote: I have a com dll written in C++ which is used in asp applications. The dll contains only one com object. There are static (global to the process) data objects within this dll. Obviously, I only want to initialize these static objects when the dll is first loaded. However, IIS seems to be reloading my dll everytime the com object is created and used in an asp page. Try running it inside a COM+ application or MTS package: create a new COM+ Application, drag and drop the dll inside it and in the properties configure the application to never shut down.
It's not the fall that kills you: it's the sudden stop - Down by Law, Jim Jamursch (1986)
-
Anonymously wrote: I have a com dll written in C++ which is used in asp applications. The dll contains only one com object. There are static (global to the process) data objects within this dll. Obviously, I only want to initialize these static objects when the dll is first loaded. However, IIS seems to be reloading my dll everytime the com object is created and used in an asp page. Try running it inside a COM+ application or MTS package: create a new COM+ Application, drag and drop the dll inside it and in the properties configure the application to never shut down.
It's not the fall that kills you: it's the sudden stop - Down by Law, Jim Jamursch (1986)
Sorry, COM+ is not allowed for this specific project. I am just wondering what is exactly the "retained in memory" property of VB6 com dll and why there is no such thing for VC++ com dll.