精华内容
下载资源
问答
  • ae二次开发常用的类和接口

    千次阅读 2016-11-30 16:13:32
    ae二次开发常用类和接口


    1、System类库是ArcGIS体系结构中最底层的类库。
    2、SystemUI类库包含用户界面组件接口定义,这些用户界面组件可以在ArcGIS Engine中进行扩展。包含ICommand、ITool和IToolControl接口。
    3、Geometry类库处理存储在要素类中的要素几何图形或形状或其他图形元素。包括投影坐标和地理坐标系统,都包含在Geometry类库中。 4、Display类库包含用于显示GIS数据的对象。
    5、Server类库包含允许用户连接并操作ArcGIS Server的对象。
    6、Output类库用于创建图形输出到诸如打印机和绘图仪等设备及诸如增强型元文件和栅格图像格式(JPG、BMP等)等硬拷贝格式。
    7、GeoDatabase类库为地理数据库提供了编程API。
    8、GISClient类库允许开发者使用Web服务,这些Web服务可以由ArcIMS和ArcGIS Server提供。
    9、DataSourcesFile类库包含用于基于文件数据源的GeoDatabase API实现。 10、DataSourcesGDB类库包含用于数据库数据源的GeoDatabase API实现。
    11、DataSourcesOleDB类库包含用于Microsoft OLEDB数据源的GeometryDatabase API实现。
    12、DataSourcesRaster类库包含用于栅格数据源的GeoDatabase API实现。
    13、GeoDatabaseDistributed类库通过提供地理数据库数据导入和导出工具,可以支持对企业级地理数据库的分布式访问。开发者不能扩展GeoDatabaseDistributed类库。
    14、Carto类库支持地图的创建和显示,这些地图可以在一幅地图或由许多地图及其地图元素组成的页面中包含数据。
    15、Location类库包含支持地理编码和操作路径事件的对象。
    16、NetworkAnalysis类库提供用于在地理数据库中加载网络数据的对象并提供对象用于分析加载到地理数据库中的网络。
    17、开发者用Controls类库来构建或扩展具有ArcGIS功能的应用程序。 18、GeoAnalyst类库包含支持核心空间分析功能的对象。
    19、3DAnalyst类库包含操作3D场景的对象,其方式与Carto类库包含2D地图对象类似。 20、GlobeCore类库包含操作globe数据的对象,其方式与Carto类库包含操作2D地图的对象类似。
    21、GlobeCore类库中有一个开发控件及与其一起使用的命令和工具。 22、SpatialAnalyst类库包含在栅格数据和矢量数据上执行空间分析的对象。

    接口
    1、一个类中有多个按钮时用到ICommandSubType接口。需要在类中同时实现ICommand和ICommandSubType接口。使用ICommandSubType接口需要指定subtype的个数。在每个ICommand属性的实现中设置每个子类型的属性,而不必多次实现ICommand接口。
    2、当你创建一个新的COM按钮时,要在你的类代码中实现ICommand接口。这些接口决定了简单按钮的行为和属性。例如,ICommand接口设置了按钮属性如caption,name,caegory,bitmap,statusbar message,tooltip,help context id和help file,enable state,和checked state。

    3、IDataset接口是用来管理dataset的主接口。例如,使用这个接口的成员来获得dataset的名称,拷贝、删除或重命名dataset。
    4、IFeatureBuffer接口用于设置和返回feature buffer中的默认shape。
    5、IFeatureClass接口是获取和设置要素类属性的主要接口。例如,使用IFeatureClass接口获取要素类类型、获取满足查询条件的要素数目或在要素类中创建新要素。IFeatureClass接口继承了IObjectClass接口。
    6、IFeatureCursor接口可用来访问要素类中的一系列要素。
    7、IFeatureDataset接口该接口继承IDataset。仅增加一个创建要素类的功能CreateFeatureClass。
    8、IFeatureSelection用来在图层上管理选择、进行选择,或者修改选择显示的方式。
    9、IFeatureWorkspace接口用于访问和管理地理数据库中的要素的重要成分—数据集,如Tables,ObjectClasses,FeatureClasses,FeatureDatasets,和RelationshipClasses。所有的Open方法(例如OpenTable)都要以dataset的名称作为输入。IFeatureWorkspace是用workspace创建和打开对象、对象类的主接口。
    10、IFeature接口扩展了其继承的IObject和IRow接口。增加了对要素形状的处理。
    11、ILayer 访问所有图层的成员实现IFeatureLayer的类
    12、IFeildsEdit接口用于创建fields集合。不能使用该接口在已存在表中删除或插入字段。向已存在对象类添加字段,使用IClass::AddField方法。删除字段使用IClass::DeleteField方法。
    13、IFields接口Fields表示表中的列集合。
    14、IField接口field对象表示表中的一列。
    15、IGeometryDefEdit接口用来创建GeometryDef对象,在定义新的要素类的时候一般会使用这个接口。不能使用IGeometryDefEdit修改与附属于要素类的GeometryDef;
    16、IGeometryDef接口以只读的方式访问GeometryDef的属性。
    17、该接口用于访问所有图层的成员。ILayer是所有图层对象的公共接口。这个接口有一个绘制图层的方法,并且可访问一般的图层属性。
    18、Tools和按钮相似,也需要与应用程序交互。放大按钮就是tool的一个好例子。 查询内置tool的属性或创建自己的COM tool时使用ITool。
    创建COM tool时,要在你的代码中实现ICommand接口和ITool接口。使用ITool接口可以定义如下一些事件的实现,如mouse move,mouse button press/release,keyboard key
    19、IWorkspaceEdit接口可以使用户开始和结束编辑,在这期间geodatabase中的对象可以更新。
    20、IWorkspaceFactory接口提供创建和打开workspace的成员以及访问workspace factory信息的成员。
    当需要创建一个新的workspace,连接已存在的workspace和寻找有关workspace的信息时使用IWorkspaceFactory接口。
    21、IWorkspace接口提供与workspace信息有关的成员。Worksapce时空间和非空间数据集,如要素类,栅格数据集和表格的容器。它提供实例化数据集和创建新数据集的方法。 22、 IWorkspace2接口提供NameExists方法,可以方便的确定所给名称、指定类型的dataset是否存在。IWorkspace2只在Personal,File和ArcSDE Geodatabase上实现。在其他数据源如shapefile workspace上未实现。
    22、使用IMap接口显示各种数据源的数据。
    23、通过MxDocument操作Maps和Layers 。MxDocument是ArcMap中用来表示地图文档的类。该类是自定义ArcMap的中心点。本文指出通过IMXDocument如何操作maps和layers。
    IMXDocument不是AE的接口,是desktop的接口。

    展开全文
  • ArcEngine+VC6二次开发 添加ESRI MapControl不支持此接口的解决办法 系统开发环境如下所示: ArcGIS Engine 9.3 Runtime+SDK VC6.0 一、创建一个VC工程  使用AppWizard来创建MFC工程(选择File->New->Project ...

    ArcEngine+VC6二次开发

    添加ESRI MapControl不支持此接口的解决办法

    系统开发环境如下所示:

    ArcGIS Engine 9.3 Runtime+SDK

    VC6.0

    一、创建一个VC工程

        使用AppWizard来创建MFC工程(选择File->New->Project Workspace菜单,

        这时弹出创建向导对话框,工程命名为AoEx,按照创建向导创建工程的步骤如下:

        (1)在Step 1中,选择"Single Document" 作为工程的应用类型;

        (2)在Step 2中,选择缺省值;

        (3)在Step 3中,选择"ActiveX controls"支持;

        (4)在Step 4中,选择缺省值;

        (5)在Step 5中,选择缺省值;

        (6)在Step 6中,选择CAoExView类,并用CFormView类作为基类,最后点击Finish完成按钮完成工程的创建工作。

    二、向工程中添加MapControl控件

        MapControl是一个很有用的控件,当它添加到工程以后,类似于ArcMap中的"DataView"窗口。

        它提供了许多方法、属性和事件,可以帮助我们完成以下主要功能:

        (1) 管理控件的外观;

        (2) 管理控件的显示属性;

        (3) 管理Map的特性;

        (4) 添加和管理控件中的图层数据,包括添加、删除数据文件,显示数据。

             这里使用Visual C++的Component Gallery来添加MapControl控件。

    通过Project->Add to Project->Components and Controls菜单项来打开Component Gallery组件库。

    Component Gallery有两个缺省的、系统定义的文件夹Registered ActiveX Controls和Visual C++ Components。

    MapControl控件在Registered ActiveX Controls文件夹中。

            在Registered ActiveX Controls文件夹中选择ESRI MapControl,

    然后点击Insert按钮,这时弹出Confirm Classes对话框,保持该对话框中的设置,

    点击OK按钮完成MapControl控件的加载,同时也向工程中添加了控件封装的所有应用类。


    以上说明来源于武汉大学出版社出版的《地理信息系统开发-ArcObjects方法》

    韩鹏  徐占华 褚海峰  姜文亮  编著


    好了现在来说明报错的问题:

    在Registered ActiveX Controls文件夹中选择ESRI MapControl,

    然后点击Insert按钮时报错了,出错信息为:

    “ESRI MapControl不支持此接口”

    在网上也没有查询到相关的解决方法,

    下面是我添加MapControl控件的方法,不知道通不通用了,你们就试作办吧。

    打开主对话框IDD_AoEx_FORM,这时会发现有一个新的工具出现在控制面格上,

    如果上述(二)步骤添加成功的话,这个工具就是新加入的MapCotrol控件了。

    像插入一般的控件一样将MapControl控件插入到该主对话框中。

    如果没有添加成功,报错了,现在可以在该主对话框中点击右键,

    弹出右键菜单,选择插件ActiveX Control菜单项,

    在弹出的对话框中ActiveX Control列表中选择ESRI MapControl控件,

    点击OK确定按钮,完成MapControl控件的插入操作,

    这样主对话框中就有一个MapControl地图控件了。

    ------the---end-----

    -----vp:hsg

    -----create date:2012-05-08






    展开全文
  • LED显示屏二次开发接口的设计方案

    千次阅读 2012-09-29 00:21:04
    这是因为,首先,厂商配置的控制软件一般只实现通用的功能,对个性化的功能很难满足要求,例如集成项目需要与后台数据库进行连接,实现实时信息发布,一般控制软件很难提供此项功能;其次,对于集成项目
    引言
    
      在LED 显示屏工程应用中,有单块显示屏项目,但更多的是多块显示屏项目。对于单块显示屏,直接使用厂商配置的控制软件就满足要求了;但对于多块显示屏,尤其是系统集成项目,厂商配置的控制软件就很难满足要求。这是因为,首先,厂商配置的控制软件一般只实现通用的功能,对个性化的功能很难满足要求,例如集成项目需要与后台数据库进行连接,实现实时信息发布,一般控制软件很难提供此项功能;其次,对于集成项目而言,显示屏信息发布仅是其中一个组成部分,需要统一的控制和界面风格;再次,在一个大的集成项目中,可能有多家厂商中标,或工程实现多年后更换或添加其它厂商的产品,而不同厂商的实现技术可能有所差异。
     
      因此,为了满足LED 显示屏在工程中的应用,厂商一般都要提供二次开发接口,供系统集成商进行二次开发,完成系统集成。经过市场调研,现在LED 显示屏二次开发接口良莠不齐,没有统一的标准,有的太简单,很难满足工程应用,而有的又太复杂,造成系统集成周期长、代价大。因此,经过研究,本文提出一种新的LED 二次开发接口的设计方法,让用户简单、快速地实现系统集成,同时减少二次开发时间和代价。
     
      1 主要功能需求分析和模型构建
     
      在工程应用中,LED 显示屏主要用来发布信息,尤其是根据后台数据库的变化,实时更新信息。
     
      典型的应用是火车站,实时更新车次、软/ 硬座票、卧铺票、发车时间等票务信息,以及到站车次、晚点车次等到站信息,除此之外,还有临时通知、车次变更、广告、候车室位置等等。
     
      在火车站综合信息管理系统中,相对于整个系统而言,LED 显示屏信息发布只是其中一部分,但LED 显示屏种类、通信类型、分布位置却可能很复杂,如图1 所示。按照显示屏的大小、挂放的位置、显示的内容和作用,可以将显示屏分为总引导信息屏、候车信息屏、分区屏、检票屏、通道显示屏、站台屏和出站口信息屏等。在通信方面,根据硬件条件、位置等,一般使用串口、网络等。串口又分为RS485 和RS232,其中一个RS485 连接多个显示屏,一个RS232 连接一个显示屏;网络又分有线网络、无线网络和GPRS 等。
               
                                                      图1  LED显示屏典型系统集成图
      经过综合分析,系统涉及显示屏的功能有:
     
      (1)发布信息、更新信息、广告和导向信息;(2)控制显示屏,如重启、定时开关屏,设置参数等;(3)监控显示屏,显示连接状态、更新时间等。
     
      其工作过程是:
     
      (1)连接显示屏;(2)发布信息、下载节目到显示屏显示;(3)控制和监控显示屏;(4)结束操作后断开连接。
     
      其实,系统调用显示屏功能并不复杂,主要难点在于:
     
      (1)如何实现多种硬件连接方式统一,包括串口、网络;(2)如何组织多种信息显示对象,包括文字、图片、动画、时钟等;(3)如何根据LED 显示屏的控制要求,提供基本的控制命令,适应多种系统集成方式,包括C/S、B/S 以及分布式、分层控制等。
     
      为了解决这些难点,并达到通用、简单、容易集成的目的,经过研究,本文构建的LED 二次开发接口的模型如图2 所示,主要功能和流程如下:
     
      (1)调用通信控制接口,根据不同的通信方式分别创建其通信通道,完成LED 显示屏连接;(2)调用节目制作接口,创建节目、添加节目对象,生成节目数据,然后使用命令接口发送节目到显示屏,完成信息发布;(3)调用命令接口,进行显示屏重启、开/ 关屏、设置亮度、更新时间、读取显示屏时间等操作,完成显示屏的控制、监控工作;(4)退出系统时,关闭通信通道,释放资源,结束二次开发接口的调用操作。
                                        
      2 关键功能的设计和实现
     
      2.1 通信协议设计
     
      LED 显示屏二次开发接口设计的首要工作是定义控制端与LED 显示屏之间的通信协议。为了实现简便并对用户透明,这里所有通信方式皆采用同一协议,每一个命令都成对出现,对应命令和返回命令,如表1 和表2 所示。
     
      表1 命令格式
      表2 返回命令格式
      各参数说明:
     
      (1)命令类型:标注命令类型ID,如通信握手命令、文件传输以及其它控制指令等;
      (2)命令号:如果某一类型命令有多个,不同的命令号表示该类不同的命令;
      (3)目标ID:指显示屏ID,默认值为0x01;
      (4)源ID:指控制端ID,默认为0x00;
      (5)长度:指具体命令实际数据长度;
      (6)数据:具体命令的数据或返回结果;
    (7)校验和:除校验和外所有该协议数据的校验和数据,一般使用算术和即可。
     
    命令传输逻辑如下:
     
    (1)发送方在发送具体的命令之前,先发送一个通信握手命令:
    控制源端- - - - - - - - - - 发送通信握手命令- - - - - - - - - - 》 显示屏控制源端《- - - - - - - - - - 返回通信握手命令- - - - - - - - - - 显示屏
    控制源端收到结果正确,则表示显示屏已经做好接收数据准备,可以开始发送具体命令。如果收不到显示屏的任何返回,需要检查物理链路是否正常,串口的波特率设置是否正常等。
    (2) 发送方把具体命令数据按前面的格式进行打包发送到显示屏,显示屏在收到数据包后会对数据进行校验检查。如果校验失败,则请求重发。
    (3)发送方的命令成功发送到显示屏后,显示屏按协议包格式把控制卡执行的结果反馈到发送方。如果校验失败,请求显示屏重发执行结果数据;否则发送结束结果给显示屏,结束命令过程。
    (4) 如果(2)中指令是文件传输指令,则重复(2)、(3),直到文件传输结束。
    在通信过程中,发送方要强制结束发送过程,可以发送通信握手命令或强制中止通信进行强制终止。
     
    2.2 通信通道接口
     
    在对LED 显示屏进行通信之前,必须先建立通信通道,而退出系统时,则释放通信通道资源。通信通道接口包括:
    (1)打开通信通道
    函数格式:DWORD COMM_Open (constPDeviceParam pDevParam, DWORD dwNotify,DWORD dwWindws , DWORD dwMsg);
    参数说明:
      ① pDevParam:表示指定设备的参数,例如串口的波特率、串口号,以及网络本地IP 地址、端口号等参数;② dwNotify:表示当LED 显示屏有返回值时是否通知,0 代表不通知,1 表示通知;③ dwWindws :表示消息通知的窗体句柄;④ dwMsg:用户定义的消息号。
      返回值:
      ① 0:表示创建失败;② 其它值:表示设备通道值。
      功能描述:
      该函数用来建立一个通信通道,函数运行一次即建立一个通道,建立成功就返回一个DWORD值,代表一个设备的句柄,用于区分不同的通道。该值供其它接口函数使用,以便对不同的显示屏进行控制。
      物理上支持串口通道、网络通道,对于串口,设置串口号、波特率、接收/ 发送缓冲区,然后打开串口;对于网络,设置本地IP、端口号、接收/ 发送缓冲区,然后打开网口。这里需要特别强调的是,网络采用UDP 方式,这主要是为了:
      ① 在协议实现上与串口统一;② 只需一次创建;③ 提高网络通信握手连接。
      因篇幅原因,以下函数将只列出函数格式和功能说明。
      (2)关闭通信通道
      函数格式:DWORD COMM_Close (DWORDdwDev/* 通信设备通道*/);
      该函数关闭已打开的通信通道(dwDev),释放通信通道资源,一般在退出系统前使用。
      (3)强制中止通信
      函数格式:DWORD COMM_Break (DWORDdwDev);
      该函数中止当前通信通道(dwDev)的通信。
      (4)通信握手
      函数格式:DWORD COMM_Link (DWORD dwDev/* 通信设备通道*/,
      BYte byDstNo/* 目标显示屏ID*/,
      char *chHost/* 网络地址,串口时无效*/,
      WORD wPort/* 网络端口号,串口时无效*/);
      该函数查询显示屏是否能够通信,可在通信之前或监控LED 显示屏时使用。
     
      2.3 节目接口
     
      LED 显示屏显示的信息其实是一个个的节目文件,一般先在上位机控制系统中生成,然后发送到显示屏上显示。在设计节目接口时,可能因节目结构不同,细节上有些差别,本文根据如图3 所示的树形节目结构设计一种节目接口。
      (1)节目初始化。
      函数格式:
      DWORD Program_Init (DWORD dwProgramType/* 节目类型*/,
      DWORD dwScreenType/* 显示屏类型*/,
      DWORD dwWidth/* 节目宽度*/,
      DWORD dwHeight/* 节目高度*/);
      该函数用于在计算机内存开辟一块内存空间,或释放上一次节目占用的资源,为节目生成做准备。
      (2)添加区域
      函数格式:
      DWORD Program_AddArea (DWORD dwAreaType/* 区域类型*/,
      LPRECT rect/* 显示区域*/,
      DWORD &dwAreaNO/* 区域号*/);
      在显示屏页面上,根据节目的要求,需要划分不同的区域,设置其起点和宽高。可使用该函数在当前显示页面上创建一个个的区域,以放置具体的显示对象,例如内码文字、时钟等。
      (3)添加各种对象。
      在页面的区域上,可添加单行文字、多行文字、内码文字、图片、视频动画、WORD 文档、Flash 动画、表格、数字时钟、模拟时钟、倒计时等各种显示对象,在实现时,每一种对象对应一个函数。这里列出常用的添加图片的函数:
      函数格式:
      DWORD Program_AddPicture(DWORD dwAreaNO/* 区域号*/,
      HDC dc/* 图形dc*/,
      DWORD dwWidth/* 图片宽*/,
      DWORD dwHeight/* 图片高*/,
      LPRECT rect/* 显示区域*/,
      DWORD dwAction/* 特效号*/,
      DWORD dwExitAction/* 退出特效号*/,
      DWORD dwSpeed/* 显示速度*/,
      DWORD dwTimecount/* 显示时间*/,
      DWORD dwTransparent/* 透明与否*/);
      该函数在指定区域上添加一个图片,显示内容来自于dc.
      (4)节目数据生成。
      函数格式:DWORD Program_MakeData()。
      该函数生成节目数据, 以便使用LEDControl_SendToScreen 函数发送到不同的显示屏。
     
      2.4 命令接口
     
      命令接口主要为控制、监控和发送节目数据而设计,例如,火车站或街头的广告屏,在夜间人少时,广告效果不明显,同时也为了省电,可在指定夜间时间点关闭显示屏,然后到早晨指定时间点自动打开显示屏。经过总结,命令接口的命令包括:
      (1)重启命令。
      函数格式:DWORD LEDControl_Reboot(DWORD dwDev, BYTE byDstNo, char *chHost,WORD wPort);
      该函数用来重启指定的LED 显示屏。
      (2)电源控制。
      函数格式:DWORD LEDControl_SetPower(DWORD dwDev, BYTE byDstNo, char chHost,WORD wPort, DWORD dwPower/* 开或关标识*/);
      该函数打开或关闭显示屏。
      (3)显示屏亮度调节。
      函数格式:DWORD LEDControl_SetBrightness(DWORD dwDev, BYTE byDstNo, char *chHost,WORD wPort, BYTE byBrightness/* 亮度*/);
      该函数用于调节显示屏亮度。
      (4)校时。
      函数格式:DWORD LEDControl_AdjustTime(DWORD dwDev, BYTE byDstNo, char *chHost,WORD wPort);
      该函数用于计算机时钟校正显示屏时钟。
      (5)节目发送接口。
      函数格式:DWORD LEDControl_SendToScreen(DWORD dwDev, BYTE byDstNo, char *chHost,WORD wPort);
      该函数将Program_MakeData 生成的节目数据发送到显示屏,最后返回状态值,表示成功、失败及其它状态,用户根据状态再进行相应的处理。
      (6)局部更新节目接口。
      函数格式:DWORDLEDControl_UpdateCodeText (DWORD dwDev,BYTE byDstNo, char *chHost, WORD wPort,char *chCodeText/* 字符串缓冲区*/, int iLen/*字符串长度*/);
      该函数用来更新显示屏局部内容。对于一些信息发布,一般只需要更新局部的内容,例如车站大厅信息发布,显示屏划分很多的区域,有数字时钟、模拟时钟、图片、动画和文字等不同的区域,一般往往只更新文字部分内容,即可达到信息发布的目的,同时不用生成节目,节省了时间和提高了效率。
     
      3 二次开发接口的应用
     
      二次开发接口一般都是以动态链接库的形式提供给用户,并提供主流开发语言的接口和例程,例如VC、C#、DELphi 和VB 等。一般的调用流程是:
      (1)载入动态链接库;(2)建立通信通道;(3)进行显示屏控制、监控操作;(4)进行节目制做、发送和更新;(5)关闭通信通道;(6)释放动态链接库,完成二次开发接口的调用。
     
      4 结论
     
      本文针对LED 显示屏工程应用中对二次开发接口的需求,提出了一种LED 显示屏二次开发接口的方法,将二次开发接口总结为通信通道、节目和命令三种接口,并在网络先锋控制卡系列产品中应用。实践证明,该方法可让用户在系统集成中,简单、快速地实现其二次开发功能,同时降低系统集成的周期和代价。
    展开全文
  • 浅析软件二次开发的基本要求

    千次阅读 2014-12-09 13:38:09
    二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到...是否提供相应的接口,有的软件公司只提供软件,但也有小公司连代码一起出售,如是后者,就更方便进行二次开发。比如售票系统,车站里面弄好

    二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能,一般来说都不会改变原有系统的内核。一般的来说,一些大公司如IBM开发了一个大型的软件系统平台,根据不同的客户的需要,一些其它的中小公司为客户根据需求在该平台上进行第二次有针对性的开发。是否提供相应的接口,有的软件公司只提供软件,但也有小公司连代码一起出售,如是后者,就更方便进行二次开发。比如售票系统,车站里面弄好了,提供几个储存过程给银行,银行就可以代理售票了,这也是一种,还有一种如我们利用delphi,C#等操作word等。

    二次开发基本要求是什么?

    第一,你要有这个开源产品的所用语言的语言基础。

    第二,你要对这个开源产品的功能和使用要有比较熟悉,因为你熟悉了,你才知道一个需求下来,你要改什么,什么是系统自带的,大概要怎么改。

    第三,你要熟悉这个开源产品的数据结构,代码结构,系统的框架结构,核心是哪里,附属功能是在哪里。简单点说,就是数据库,代码逻辑,文件目录的熟悉。如果是用接口式的二次开发,则需要你对这个接口比较熟悉,一般来说会有相应的文档。

    第四,根据你的需求,然后利用开源产品的内核,进行系统的扩展和修改,以达到你的需求。

    第五,对其提供的SDK中的API函数有一定了解,以利于你对SDK中个函数的使用更加灵活方便。

    怎么做二次开发?

    第一,你要有这个开源产品的所用语言的语言基础,能看懂代码是最基本的。

    第二,你要对这个开源产品的功能和使用要有比较熟悉,因为你熟悉了,你才知道一个需求下来,你要改什么,什么是系统自带的,大概要怎么改。

    第三,你要熟悉这个开源产品的数据结构,代码结构,系统的框架结构,核心是哪里,附属功能是在哪里。简单点说,就是数据库,代码逻辑,文件目录的熟悉。

    第四,根据你的需求,然后利用开源产品的内核,进行系统的扩展和修改,以达到你的需求。

    AnyChat音视频方案就是一款二次开发的技术平台,可以下载相关Demo进行二次开发.

    介绍PHP的开源产品的二次开发的基本要求:

    第一, 基本要求:HTML(必须要非常熟悉),PHP(能看懂代码,能写一些小系统,如:留言板,小型CMS),Mysql(至少会一种数据库),Javascript(能看懂,能改现成的一些代码),Div+Css(能进行界面的调整,明白CSS是怎么使用的)

    第二, 熟悉开源产品的使用,比如 Dedecms,你要知道怎么登录,怎么新建栏目,怎么添加文章,模板标签的使用方法,模型的概念和使用方法等等一些功能

    第三, 要熟悉这个开源产品的数据库结构,还要理解里面核心文件的内容,比如:数据库类怎么使用,常用的安全过滤是怎么做的,模板引擎又是怎么使用的等等一些核心内容。还要知道这个开源产品的目录结构,就是说,你要知道哪是放模板的,哪里是做控制的,哪里是放样式的等等。

    第四, 熟悉你的需求,对需求进行解读,然后确定如何对这个开源产品进行修改和扩展

     

    展开全文
  • 海康威视网络摄像头SDK中Demo的二次开发(运行)

    万次阅读 多人点赞 2018-03-28 21:28:50
    我们买回来的网络摄像头可以在官网下载到SDK开发包: 下载下来SDK后我们解压,就可以看到里面包含一些开发文档以及一些Demo示例: 我们点开Demo示例,可以看到里面有各种语言的示例,这里我们以MFC为例进行...
  • Python 二次开发 AutoCAD 简介

    万次阅读 多人点赞 2018-12-13 18:20:21
    pyautocad模块由俄罗斯工程师开发,因参考实例较少,工程需要,现将模块中一些基本的用法,做出简要说明,叙述力求简洁明了, 因个人水平有限,文中难免有所疏漏,还请各位大神不吝批评指正。 ...
  • Creo3.0二次开发

    千次阅读 2015-07-12 07:38:26
    VS2012+Creo3.0二次开发这是PTC的标准配置。 Creo3.0修正了Prodevelop目录,不再需要添加这个目录下的Include和lib了。配置更为简单了。 但同时Creo3.0下的二次开发,ProToolkit修正了很多的常用函数,原来的...
  • Abaqus 二次开发 基本概念

    千次阅读 多人点赞 2019-12-12 16:30:14
    Abaqus二次开发......前后处理层次的Python......求解器层次的Fortran......有限单元法......偏微分方程的近似解......GUI二次开发......
  • JMP二次开发方法研究

    千次阅读 2017-09-20 22:43:21
    摘 要:JMP是一款非常优秀的数据统计发现软件,并可以根据用户的个性化需求,用户可以对其进行二次开发,本文介绍了JMP二次开发的三种方法,并与一个实验设计为实例,出了开发思路和关键方法,对开发人员有很好的...
  • Redash 二次开发入门

    万次阅读 2019-02-20 11:40:26
    在Redash二次开发上做了不少工作,修改bug,定制样式,定制功能,增加数据源等等。聊聊自己的二次开发经验。 懂分享的人,一定会快乐! 环境准备 Redash依赖的外部环境比较多,特别是Python相关的包,大多数时候一次...
  • ArcGIS二次开发入门(一)

    万次阅读 2014-05-31 23:51:46
    作者:朱金灿来源:http://blog.csdn.net/clever101 公司培训ArcGIS二次开发(C#作为开发语言),自己回家动手实践了一下。 1. 首先是二次开发环境的安装,需要装下面两项:
  • EasyDSS流媒体服务器软件,提供一站式的转码、点播、直播、时移回放服务,极大地简化了开发和集成...提供丰富的二次开发接口,基于JSON的封装及HTTP调用。提供播放鉴权、推流鉴权等安全保证。提供用户及相关权限管理...
  • QGis二次开发基础 -- 添加在线地图服务

    万次阅读 热门讨论 2016-02-24 00:07:18
    OpenGIS 规范致力于为地理信息系统间的数据和服务互操作提供统一,提供了很多在线的 GIS 数据,包括WMS,WFS,WCS等在线地图服务。本文就来与大家探讨一下如何在QGis二次开发添加这些在线地图图层。
  • 工业相机SDK二次开发

    千次阅读 2019-04-13 17:53:43
    :1.工业相机编程模型和流程 ...6.工业相机SDK之opencv二次开发这里写自定义目录标题) 1.工业相机编程模型和流程 不同的工业相机提供不同的编程接口(SDK),尽管不同接口不同相机间编程接口各不相同...
  • C# CAD二次开发初步(HelloWorld)

    千次阅读 2019-09-15 14:15:31
    C# AutoCAD二次开发初步(HelloWorld) 中秋佳节,先来祝福大家中秋节快乐???????????? 难得的中秋节放假,在假期充一下电。在这里我打算写一个系列文章来分享我在做CAD二次开发项目的时候的一些实际项目中的经验,...
  • 南方数码iData数据工厂&二次开发

    千次阅读 2018-06-07 08:53:16
    iData数据工厂软件是南方公司旗下的一个...与其他一些软件相似,iData数据工厂提供丰富二次开发接口,方便用户根据自己的需求开发一些自己需要的功能,最重要的是iData数据工厂二次开发提供多种计算机语言支持,有l...
  • AutoCAD二次开发——AutoCAD.NET API开发环境搭建 AutoCAD二次开发工具:1986年AutoLisp,1989年ADS,1990年DCL,1993年ADS-RX,1995年ObjectARX,1996年Active X Automation(COM),1997年VBA,1998年Visual
  • 骑士ME3616模块二次开发

    千次阅读 2018-12-25 17:08:33
    一、二次开发简介 ME3616模块是高新兴物联基于MTK2625芯片开发的一款NBIoT模块,支持全频段和GPS功能,我买的这款不带GPS功能。这款模块相对其他的NBIoT模块的优点是支持二次开发,如果用户的应用场景比较简单,外围...
  • autocad二次开发资料总结

    千次阅读 2015-11-23 21:45:39
    autocad二次开发 AutoCAD(Auto Computer Aided Design)是美国Autodesk公司研制开发的一款计算机辅助设计软件,它不是一款简单的绘图工具,而是一个复杂的计算机辅助设计系统。我们可以根据他灵活的开放性对其进行...
  • Samlight二次开发

    千次阅读 2016-11-30 15:55:26
    很久没有在CSDN上写点东西了,一方面...本文从下面几个方面来介绍如何在Samlight上做简单的二次开发: Samlight简介 Samlight帮助文档 常用的函数说明 一步一步来开发 Samlight简介
  • GP工具可以直接调用Arcgis...2.添加相关引用using ESRI.ArcGIS.Geoprocessor; using ESRI.ArcGIS.Geoprocessing; using ESRI.ArcGIS.AnalysisTools; //引用工具所在程序集3.调用GP工具有2种方式: (1)使用Geoproces
  • 在上一篇关于AutoCAD的文章中,我将很多关于CAD的...PS:在开发中我们最好使用中英文两个版本同时进行,因为有些时候那些接口或类中的命名和英文版中的名称一样的,这样方便理解! -----------------------
  • 关于禅道二次开发的分享

    千次阅读 2018-11-16 16:03:17
    关于禅道二次开发的分享 近期,公司测试部门需要一款用来管理项目的系统,因此,使用了禅道测试平台,并在此基础上进行了修改,为了更好的使用。 首先,感谢禅道测试平台的开发团队,最近我也在研究禅道,所以写了一...
  • 谷歌地球二次开发基础平台

    千次阅读 2018-08-20 23:48:30
    谷歌地球(GoogleEarth,简称GE)集成了地理信息系统、...谷歌地球不仅提供了三维场景中的卫星影像和三维地形、地理信息,还提供了用于二次开发的插件和强大的三维场景与图件控制功能。谷歌地球二次开发主要基于G...
  • 可自主二次开发的微信云控客服crm系统软件(带源码) 分享一款可自主二次开发的微信云控客服crm软件,不是微信网页协议,不是ipad协议,不是安卓协议。提供源代码完全可以自主二次开发! 全部协议定义在这:1、...
  • 基于GIS的二次开发

    千次阅读 多人点赞 2019-02-28 19:10:53
    针对基础部分和三维数据库建设部分实习内容,进行校园、三维地理信息系统设计,完成校园地理信息系统、三维数据库设计和实现,并完成简单的查询、浏览和分析功能。本次实习开发语言为C#,开发平台为vs2010。 ...
  • 通过在新建的窗体中的RadioButton来实现在MapControl上画出矢量图形,用到接口有ICommand,ITool。 用到的方法有TrackPolyLine(),TrackPolygon(),MapToPoint(),三个方法建立矢量要素,通过IElement接口创建的对象的...
  • ABB机器人 二次开发 C# PC SDK配置

    千次阅读 热门讨论 2019-09-04 16:44:51
    前言: 前段时间(一年前吧)开发了一下的ABB 的上位机 现在也忘的差不多了, 可以控制机器人移动 ...ABB 的二次开发只提供了c#的sdk 没有c++ 先配置一下c#环境吧 我用的是ABB IRB 1200工业机器人没记错的话 ABB...
  • 由于项目需要,最近搜集整理了一些关于CATIA二次开发的资料,貌似国内对于CATIA二次开发需求不大,相关资料比较有限,因此刚开始遇到了不少问题,通过分析网上的一些示例,以及结合CATIA的宏录制功能生成的代码,才...
  • UEditor 如何进行二次开发

    千次阅读 2015-09-23 10:46:20
    但在之前的版本中,UEditor对于二次开发的支持不够优化,经常需要开发者不仅要开发相应的功能,例如command命令,plugin插件等,还要在UEditor上修改多处文件,例如,添加按钮,添加样式等等,才

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 297,542
精华内容 119,016
关键字:

如何给软件添加二次开发接口