什么是COM组件?
1.COM组件是以WIN32动态链接库(DLL)或可执行文件(EXE)形式发布的可执行代码组成。
2.COM组件是一些小的二进制可执行文件,必须以二进制的形式发布。
3.COM组件可以给应用程序、操作系统以及其它组件提供服务。
4.自定义的COM组件可以在运行时刻同其它组件连接起来构成某个应用程序。
5.COM组件必须是动态链接的。
使用COM组件需要注意:1.必须要保证升级应用时不破坏与以前版本的向后兼容性;2.必须要做到扩展系统服务时不依赖于特定的操作系统。
COM组件不是一种计算机语言;
COM组件不是DLL,只是利用DLL来给组件提供动态链接的能力;
COM组件不是API函数集;
COM组件不是类;
COM组件中的接口是一组由组件实现的,提供给客户使用的函数(在COM中的接口是一个包含函数指针数组的内存结构,数组元素是一个由组件实现的函数地址)。DLL的接口就是它所输出的函数。
COM组件创建的步骤
1.在项目“ConsoleApp”右击,选择“属性”
2.选择“应用程序”。如果不是代码需要,目标框架尽量选择较低,便于选择支持更多版本的操作系统。输出类型选择“类库”,目的是将一个封装好的DLL注册到系统中。
3.选择“生成”。目标平台有两种,x64和x86。主要区别在于注册时使用的工具和使用COM组件的软件限制。如,若你的程序需要使用到COM组件,而你当前的应用程序属于32位,那么你需要将你的目标平台设置为“x86”,否则将不能使用,会出现报错信息。反之,如果你的应用程序是64位,那么你需要将你的目标平台设置为“x64”。只有这样,才能正确使用COM组件。
在Visual Studio2019中,为了对“x86”和“x64”的应用程序进行兼容,可以将目标平台设置为“Any CPU”。
如果勾选了“为COM互操作注册”,在Visual
Studio中可以自动将“生成”好的DLL注册到系统中(需要使用管理员权限)。如果需要把这个DLL注册到另一台计算机上,需要手动使用CMD命令注册(有32为注册和64位注册两种方式)。
4.选择“签名”。要生成COM组件,必须创建签名。