• 【转载】 ADS与ARX的比较


    转载一文,来自晓东CAD家园的文章。文章详细叙述了ARX、ADS等AutoCAD二次开发接口的东西

    http://www.xdcad.net/article/article/htmlcache/1709.html


      AutoLISP是一种解释性的语言,它提供了一个简单的扩充AutoCAD命令的机制。ADS是用C语言开发的 编译执行的。然而,对于AutoCAD来说,ADS程序和AutoCAD程序没有什么区别。一个ADS程序实际上是由一组外部函数组成,它们由 AutoLISP解释器来加载调用,ADS程序本身并不能直接和AutoCAD进行通讯

      ARX程序在很多方面都和ADS程序、AutoLISP程序不同。最重要的一点是,ARX程序实质上是一个动态链 接库(Dll),它和AutoCAD共享地址空间并且直接和AutoCAD进行通讯。对于经常需要和AutoCAD通讯的应用程序来说,ARX程序比 ARX运行更块。除了速度上的提高之外,ARX程序还可以创建新的类(klass),这些类可以为其它程序共享,从而充分利用面向对象编程的优点。ARX 程序创建的实体几乎和AutuCAD的内在试题是完全等同的。

      ADS与ARX的区别:

    1. ARX程序是一个动态链接库(DLL),它直接和AutoCAD进行通讯。ADS程序是一个可执行文件,它需要通过AutoLISP来和AutoCAD进行通讯。

    2. AutoCAD是不可重入的,因此ADS程序也是不可重入的。而在ARX中,每一个命令都有独立的入口。

    3. ARX程序速度快,但更“脆弱”,ARX程序和AutoCAD共享进程空间,ARX程序本身是AutoCAD的一部分,ARX程序的崩溃通常会导致 AutoCAD系统的崩溃。而AutoLISP和ADS都是通过函数来间接访问AutoCAD。ADS程序速度慢,但更“绝缘”,ADS程序崩溃并不一定 导致AutoCAD系统崩溃。

    4. ADS程序类似如宏(macro),ADS中的函数(如ads_command)以及和AutoLISP的通讯使得ADS程序的工作类似于自动作用的宏。相比之下,ARX程序则是更基本,主程序(AutoCAD)调用每一个ARX程序注册的命令。

    5. ARX程序具有ADS程序和AutoLISP程序所不具备的访问和控制AutoCAD的能力。

    6. ARX提供了面向对象编程的技术。ARX充分支持C++,充分支持面向对象编程的技术,而ADS仍然只能使用传统的C语言编程。

  • 相关阅读:
    转载在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
    笔试题Multicore简答题(上)
    笔试题Multicore简答题(下)
    转载深入理解const char*p,char const*p,char *const p
    笔试题mulicore编程题
    躺在被窝看蜗居,一连看到大结局,饿了揪把馒头,咽不下去吃点咸菜,我一边吃馒头,一边吃咸菜,一把抹鼻涕,一把抹眼泪
    //向块中用程序添加属性
    带参数的多线程
    扩展数据名 删除
    无法加载程序集。错误详细信息: Autodesk.AutoCAD.Runtime.Exception: eDuplicateKey
  • 原文地址:https://www.cnblogs.com/alonecat06/p/1339001.html
Copyright © 2020-2023  润新知