一、前言
上两回中,咱们用 atl 写了第一个 com 组件程序,这回中,主要介绍编译、注册与调用方法。示例程序你已经下载了吗?如果还没有下载,vc6.0 的用户点asp?id=2720">这里,vc.net 的用户点asp?id=2721">这里。 二、关于编译 2-1 最小依赖 “最小依赖”,表示编译器会把 atl 中必须使用的一些函数静态连接到目标程序中。这样目标文件尺寸会稍大,但独立性更强,安装方便;反之系统执行的时候需要有 atl.dll 文件的支持。如何选择设置为“最小依赖”呢?答案是:删除预定义宏“_atl_dll”,操作方法见图一、图二。 图一、在vc6.0中,设置方法 图二、在 vc.net 2003中,设置方法 2-2 crt库 如果在 atl 组件程序中调用了 crt 的运行时刻库函数,比如开平方 sqrt() ,那么编译的时候可能会报错“error lnk2001: unresolved external symbol _main”。怎么办?删除预定义宏“_atl_min_crt”!操作方法也见图一、图二。(vc.net 2003 中的这个项目属性叫“在 atl 中最小使用 crt”) 2-3 mbcs/unicode 这个不多说了,在预定义宏中,分别使用 _mbcs 或 _unicode。 2-4 idl 的编译 com 在设计初期,就定了一个目标:要能实现跨语言的调用。既然是跨语言的,那么组件的接口描述就必须在任何语言环境中都要能够认识。怎么办?用 .h 文件描述?------ c语言程序员笑了,真方便!basic 程序员哭了:-( 因此,微软使用了一个新的文件格式---idl文件(接口定义描述语言)。idl 是一个文本文件,它的语言语法比较简单,很象c。具体 idl 文件的讲解,见下一回«com 组件设计与应用(八)之添加新接口»。... 下一页