欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap FreeTalk
   您现在位于: 首页技术专栏ArcGIS应用与开发AO开发 → 正文
制作ArcGIS DLL插件的安装包
08-08-26 09:19:32 作者:jbttm 出处:浩淼的天空

当我们编写了一个ArcGIS扩展DLL文件后,如何将它载入到ArcGIS程序中呢?这个很简单,无非是在“定制”面板中点击“Add from file”命令导入即可,但如果类实现了IDockableWindowDef,我们就得在组件管理器中将其再注册一次,这样做非常麻烦。

如果是自己写个DLL玩玩尚可,这也算不上什么了不起的工作,但如果你是给客户开发DLL,显然人家是不会接受这种安装方式的,那么,如何将DLL打成安装包呢?

其实这个问题非常简单,一般的COM DLL如果要在操作系统中能被调用,肯定得注册到注册表中,这个过程可以使用命令regsvr32来实现,但如果你用这种方式注册ArcMap的DLL,绝不会出现在ArcMap的命令栏、工具栏或浮动窗体一栏中,这是因为该COM的类虽然已经被注册,但并没有添加到正确的组件类型中去。因此,Add from file命令做了两件事情:1.调用Regsvr32注册DLL 2.将DLL中的类添加到正确的类型中。但是,这个命令并没有考虑IDockableWindowDef的类型情况,所以我们还得手工添加一次。

怎么样自动完成这个过程呢?也并不复杂,如果你是用VB写的DLL,在编写完成后,点击VB6中外接程序的ESRI Compile and Register命令,会弹出一个对话框,我们需要将左边的类对应正确的类型(在右边栏中),然后点击Compile按钮,在生成DLL的同时,也会产生一个REG文件,我们来看看这个文件的内容:

REGEDIT4
; This Registry Script enters CoClasses Into their appropriate Component Category
; Use this script during installation of the components
;
; It also lists all coclasses contained within the DLL
; CoClass: NBGISDataTools.cDataToolbar
; CLSID: {2AD16237-34B1-4BDD-85E7-BF4E0217915A}
; Component Category: ESRI Mx CommandBars
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{2AD16237-34B1-4BDD-85E7-BF4E0217915A}\Implemented Categories\{B56A7C4A-83D4-11D2-A2E9-080009B6F22B}]

; CoClass: NBGISDataTools.cDynamicDisplay
; CLSID: {13538A84-0856-4C07-8013-4539321D454E}
; Component Category: ESRI Mx Commands
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{13538A84-0856-4C07-8013-4539321D454E}\Implemented Categories\{B56A7C42-83D4-11D2-A2E9-080009B6F22B}]

这是文件的一个片段,好了。现在我们使用regsvr32将DLL进行注册,然后双击这个REG文件,然后打开ArcMap,你会发现相应的工具条

9 7 3 1 2 4 8 :

(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  
    ArcGIS Server 9.3 beta 体验一 -- 安装
    Oracle 10g CRS 安装管理一点小结
    TileCache 2.0 安装与配置
    AIX下安装GCC
    ArcIMS安装在Server 2003上的安全性问题
    Oracle 10g CRS 安装管理一点小结
    AIX + ORACLE RAC + HDS + SDE安装日志

    关于我们友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
     
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.
     

                   滇ICP备05006901号