일반 DLL과 COM DLL 차이

Dope Flamingo·2021년 8월 29일

Software일반

목록 보기
1/2

There's a giant difference between the two. The list is too long to reproduce accurately in an SO post, I'll try to hit the highlights:

  • A C++ DLL must export every function or class it wants to make available to the client code. A COM DLL only exports 4 functions with well-known names and behavior
  • An application that uses a C++ DLL must describe that DLL's interface at link time, a COM server is bound at runtime
  • An application that uses a C++ DLL must allow Windows to find the DLL at startup time, usually by having the DLL in the same directory as the EXE or on the Path. A COM DLL is found without the client app specifying where it is located. The registry is used at runtime to locate the DLL
  • A COM server doesn't have to be a DLL. It can be anything, including a seperate process on the same machine or an executable located on another machine half-way around the world. The client code is oblivious to where it is located

Specific to the Automation subset of COM:

  • A COM server is usable by any language that supports COM. Which in Windows is just about any of them.

https://stackoverflow.com/questions/12680981/com-vs-non-com-dll

profile
How Deep Is Your Learning

0개의 댓글