|
*info) { return NS_OK; } static NS_METHOD nsMyComUnregistrationProc(nsIComponentManager *aCompMgr, nsIFile *aPath, const char *registryLocation, const nsModuleComponentInfo *info) { return NS_OK; } NS_DECL_CLASSINFO(nsMyCom) static const nsModuleComponentInfo components[] ={ { "nsMyCom Component", NS_MYCOM_CID, NS_MYCOM_CONTRACTID,nsMyComConstructor, nsMyComRegistrationProc /* NULL if you dont need one */, nsMyComUnregistrationProc /* NULL if you dont need one */, NULL /* no factory destructor */, NS_CI_INTERFACE_GETTER_NAME(nsMyCom), NULL /* no language helper */, &NS_CLASSINFO_NAME(nsMyCom) } }; NS_IMPL_NSGETMODULE(nsMyComModule, components) 5、制作Makefile,生成,安装组件 好了,我们可以编写Makefile文件,来编译我们刚才编写的组件了. #filename:Makefile #begine------------------------------------- CPP = g++ CPPFLAGS += -fno-rtti -fno-exceptions -shared GECKO_SDK_PATH = /sdk/gecko-sdk XPIDL = $(GECKO_SDK_PATH)/xpcom/bin/xpidl CPPHEADER = -m header TYPELIB = -m typelib REGDIR = /usr/local/lib/mozilla-1.6 OUTDIR = $(REGDIR)/components GECKO_CONFIG_INCLUDE = -include mozilla-config.h GECKO_DEFINES = -DXPCOM_GLUE GECKO_INCLUDES = -I$(GECKO_SDK_PATH) \ -I$(GECKO_SDK_PATH)/xpcom/include\ -I$(GECKO_SDK_PATH)/nspr/include GECKO_LDFLAGS = -L$(GECKO_SDK_PATH)/xpcom/bin -lxpcomglue \ -L$(GECKO_SDK_PATH)/nspr/bin -lnspr4 GECKO_IDL = -I$(GECKO_SDK_PATH)/xpcom/idl build: idl nsMyCom.o nsMyComModule.o $(CPP) $(CPPFLAGS) -o libxpmycom.so $(GECKO_DEFINES) \ $(GECKO_LDFLAGS) nsMyCom.o nsMyComModule.o chmod +x libxpmycom.so idl: nsIMyCom.idl $(XPIDL) $(GECKO_IDL) $(CPPHEADER) nsIMyCom.idl $(XPIDL) $(GECKO_IDL) $(TYPELIB) nsIMyCom.idl nsMyCom.o: nsMyCom.cpp $(CPP) $(GECKO_CONFIG_INCLUDE) $(GECKO_DEFINES) \ $(GECKO_INCLUDES) -c nsMyCom.cpp -o nsMyCom.o nsMyComModule.o: nsMyComModule.cpp $(CPP) $(GECKO_CONFIG_INCLUDE) $(GECKO_DEFINES) \ $(GECKO_INCLUDES) -c nsMyComModule.cpp -o nsMyComModule.o install: cp nsIMyCom.xpt $(OUTDIR)/ cp libxpmycom.so $(OUTDIR)/ clean: rm *.o rm *.so rm *.*~ rm *~ #end------------- 如果一切无误,我们make之后,g++就会在当前目录下生成libxpmycom.so库文件。然后再将该组件安装到mozilla的组件目录中: make install 该组件库及对应的类型库nsIMyCom.xpt将会被拷到/usr/local/lib/mozilla-1.6/components(要确认你的组件目录,如mozilla1.4目录一般为usr/local/lib/mozilla-1.4/components)目录中。 这时我们可以从控制台启动mozilla浏览器,在浏览器输出的一系列信息中,将会有该组件被注册成功的信息。 6、在html/javascript中测试该组件。 该html如下: //------------------------------------ <html> <head> <title> 测试XPCOM组件 </title> </head> <body> <script> netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var mycom = Components.classes["@westsoft.org/mycom;1"].createInstance(); mycom = mycom.QueryInterface(Components.interfaces.nsIMyCom); 上一页 [1] [2] [3] [4] 下一页 [C语言系列]C# 和 Linux 时间戳转换 [Web开发]PHP flock文件锁介绍 [Web开发]flock() Linux下的文件锁 [电脑应用]Linux下的六个免费的虚拟主机管理系统介绍 [电脑应用]Linux数据库大比拚 [操作系统]在Windows中玩转Linux操作系统 [办公软件]在RedHat Linux 9里安装gaim0.80 [办公软件]掌握 Linux 调试技术 [办公软件]理解 Linux 配置文件 [聊天工具]Real10 & Xpdf installation on Linux Box
|