dlls

can anyone tell me what is difference between a regular dll and a com dll?
A COM DLL is a specialization of a regular DLL, but to be perfectly honest, technically they are the same. In other words, you don't need a "special" compiler to compile a COM DLL. One that produces regular DLL's will work just fine, meaning technically there's no difference between the two.

So the differences are conceptual: A COM DLL MUST adhere to certain minimal rules: It must extern a function named DllGetClassObject() that is responsible for handing out class factory pointers (that may or may not point to the same factory object), y may extern registration functions DllRegister() and DllUnregister(), and I think I am missing one more. If I remember, I'll edit the post.
DllCanUnloadNow()
Elaborating further on what webJose was saying, I've heard it said that, "Well, this is a regular dll, and this other thing is a COM dll". That isn't exactly right. A COM dll is a regular dll. They both export functions which a client can call. The difference is that a COM dll can return a pointer to an interface used to create COM objects. Also, COM Dlls usually aren't loaded directly by a client app (although they can be), but rather through system COM services. COM servers place path information in the Windows registry which allow the Windows Service Control Manager ( SCM - pronounced SCUM ) to load the dll. Hope this helps.
thanks guys. that really was helpful.
Topic archived. No new replies allowed.