zoukankan      html  css  js  c++  java
  • 制作ArcGIS DLL插件的安装包

    制作ArcGIS DLL插件的安装包

    08-08-26 09:19:32 浩淼的天空 

     365Key网摘      将此页收藏至一摘<无需注册>       

    核心提示:当我们编写了一个ArcGIS扩展DLL文件后,如何将它载入到ArcGIS程序中呢?这个很简单,无非是在“定制”面板中点击“Add from file”命

    当我们编写了一个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,你会发现相应的工具条

    或命令已经出现了。

    既然知道了注册的过程,那将它打包就更容易了,在Installshield中新建一个项目,添加需要注册的DLL,然后在Regedit栏目中将这个REG文件导入即可,就是这么容易。

  • 相关阅读:
    js中的数据类型转换
    js中的数据类型
    模仿QQ菜单的手风琴效果(点击当前展示其“兄弟”关闭)
    QQ菜单案例,点击展开再次点击关闭(类似手风琴效果)
    日期格式化:SimpleDateFormat【线程不安全】、FastDateFormat和Joda-Time【后两个都是线程安全】
    lik模糊e查询语句,索引使用效果详解
    组合索引的使用效果的总结
    Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享
    Spring4新特性
    Spring 事物机制(总结)
  • 原文地址:https://www.cnblogs.com/xianyin05/p/3044489.html
Copyright © 2011-2022 走看看