转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
XPCOM--LINUX下的组件开发技术         ★★★★

XPCOM--LINUX下的组件开发技术

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2842 更新时间:2009/4/23 10:51:32
*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
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台