xpidl

xpidl 是一个基于 XPIDL 接口描述文件, 用于生成 XPCOM 接口信息的工具. 它会自动生成:

  • C++ 头文件 (<tt>.h</tt>), 该头文件中包含了一个带注释的 C++ 接口的完整声明.
  • Java 接口文件 (<tt>.java</tt>)
  • XPConnect typelib 文件 (<tt>.xpt</tt>), 这个文件中定义了通过 XPConnect 动态调用 XPCOM 对象的运行时刻类型信息.
  • HTML 格式的文档 (<tt>.html</tt>)

编译 xpidl

xpidl 的实现是基于 Gnome 工程中的 libIDL idl 编译器. libIDL 编译器依赖的 glib 库也来自于 gnome 工程. xpidl 编译器现在是 Mozilla 整个编译过程中必须包含的一分子, 我们用它来生成 XPCOM 组件的头文件. 如何得到 libIDL 和 glib 请看 Build Documentation.

Unix: 如果你仅仅想编译 xpidl 本身, 你只需要编译很少一部分目录. 在获取 mozilla 源码后, 执行 'configure', 然后以下面的命令就可以在 dist/bin 目录下编译出 xpidl:

make -C config
make -C nsprpub
make -C xpcom/typelib

使用 xpidl

xpidl build page 有关于如何添加一个 XPIDL 文件到 Mozilla 的编译过程的说明. xpidl 也可以在 Unix 和 Windows 下以命令行的形式执行:

Usage: ./xpidl -m mode [-w] [-v] [-t version number]
          [-I path] [-o basename | -e filename.ext] filename.idl
       -a emit annotations to typelib
       -w turn on warnings (recommended)
       -v verbose mode (NYI)
       -t create a typelib of a specific version number
       -I add entry to start of include path for ``#include "nsIThing.idl"
       -o use basename (e.g. ``/tmp/nsIThing) for output
       -e use explicit output filename
       -m specify output mode:
          header        Generate C++ header            (.h)
          typelib       Generate XPConnect typelib     (.xpt)
          doc           Generate HTML documentation    (.html)
          java          Generate Java interface        (.java)

资源

Flames to docs mike+mozilla@meer.net & mang@subcarrier.org


原始文档信息

Document Tags and Contributors

Contributors to this page: Rongsheng, Klp99
最后编辑者: Rongsheng,