求C++程序设计语言(特别版)中文版 PDF(非扫描版)!!!!!!!!!!!我会追加分的!

求C++程序设计语言(特别版)中文版 PDF(非扫描版)!!!!!!!!!!!我会追加分的!,第1张

C++ How to Program, 7/e (C++大学教程 第7版) 英文原版 全彩页

C++大学教程(第五版)中文版高清PDF下载

C++大学教程 第五版 (C++ How to Program, 5/e) 英文版

C++程序设计语言(特别版) 中文版

C++程序设计原理与实践 (中文高清版) | Programming: Principles and Practice Using C++ (英文原版)

The C++ Programming Language, 3rd Edition

C++ Primer 第四版 中文版

C++ Primer 第四版 中英文对照文字版

C++ Primer 第三版 中文版

C++ Cookbook 中文版 高清PDF下载 | O'Reilly C++ Cookbook

C++Primer Plus(第五版)中文版+习题解答+代码 | 英文原版

C++程序设计教程 第二版 钱能

易学C++ (Easy C++) 中文PDF文字版 附习题答案及书中源码

现代C++程序设计

C++ 参考大全 (第四版)

C++大学教程 中文chm

Effective C++ 中文版

Essential C++ 中文版+英文版 侯捷译

Exceptional C++ Style 中文版

C++编程思想(第2版)第1卷:标准C++导引

C++编程思想(第2版)第2卷:实用编程技术

C++入门经典(第三版) 中文PDF版+详细书签

Google C++编程风格指南

C++设计新思维(泛型编程与设计模式之应用)

C++语言的设计和演化

C++代码设计与重用

C++编程艺术

C++编程金典(第3版) 清华大学出版

C++编程规范:101条橡闷规则、准则与最佳实践

C++编程惯用法 高级程序员常用方法和技巧

疑惑C++

实用C++编程大全

C++程序设计与导论(第二版)

C和C++代码精粹

C++沉思录

C++必知必会

C++程序调试实用手册

C++面向对象多线程编程

高质量C++编程指南

深度探索c++对象模型 侯捷译

设计模式:可复用面向对象软件的基础 中文高清PDF版

C++精髓 软件工程方法

C++技术参考手册

C++游戏编程

C++高级编程

C++编程:数据结构与程序设计方法

数据结构C++语言描述 应用标准摸板库STL(第2版)

现代程序设计——C++与数据结构面向对象的方法与实现

C++高级参考手册

大规模C++程序设计

C++语言的设计和演化

C++标准程序库(前6章)

C++ Templates全览 中文版

C++模板元编程 中文PDF下载 (C++ Template Metaprogramming)

标准C++库函数参考

The Annotated C++ Reference Manual

C++多范型设计

COM实例编程

C++ STL程序员开发指南 PDF下载

C++ STL开发技术导引

STL源码剖析

泛型编程与STL

Effective STL 中文版

C++ STL程序员开发指源隐南

C++模板 技术大雹如厅全

C++语言的设计和演化 中文PDF版

数据结构各种算法实现(C++模板)

数据结构、算法与应用:C++语言描述

Absolute C++, 4th Edition

Sams C++ Unleashed

Effective C++, 3rd Edtition

O'Reilly C++ In a Nutshell

Exceptional C++ Style

More Exceptional C++

C++ Coding Standards

Inside the C++ Object Model

More Exceptional C++

Exceptional C++

Cross-Platform Development in C++

Practical C++ Programming

C++ GUI Qt 4编程(第二版)中文高清PDF版

C++ GUI Programming with Qt 4 (英文原版)

C++ Coding Standards 101 Rules Guidelines

C++ Template Metaprogramming

C++ Standard Library - A Tutorial and Reference

Professional Multicore Programming

Accelerated C++ - Practical Programming by Example

2005年度最经典C++教程8本打包下载

下面是我找到的资料,希望对你有用。AutoCAD二次开发工具综述

AutoCAD是目前微机上应用最为广泛的通用的交互式计算机辅助绘图与设计软件包。AutoCAD的强大生命力在于它的通用性、多种工业标准和开放的体系结构。其通用性使得它在机械、电子、航空、轮船、建筑、服装等领域得到了极为广泛的应用。但是,不同的行业标准使得各领域在使用AutoCAD的过程中均需根据自身特点进行定制或开发。Autodesk公司为满足广大用户的需求,自AutoCAD v2.18版至AutoCAD 2000的短短十几年间,就相继推出了三代二次开发工具,如图1示。可以说,AutoCAD的通用性为其二次开发提供了必要条件,而AutoCAD开放的体系结构则使其二次开发成为可能。

下面对AutoCAD的三代开发工具进行浅析。

一、第一代开发工具——AutoLISP

AutoLISP是1986年随AutoCAD v2.18提供的二次开发工具。它是一种人工智能语言,是嵌入AutoCAD内部的COMMON LISP的一个子集。在AutoCAD的二次开发工具中,它是唯一的一种解释型语言。使用AutoLISP可直接调用几乎所有的AutoCAD命令。

AutoLISP语言最典型型返锋的应用之一是实现参数化绘图程序设计,包括尺寸驱动程序和鼠标拖动程序等。另一个典型应用就是驱动AutoCAD提供PDB模块构成DCL(Dialog Control Language)文件创建自己的对话框。

AutoLISP具有以下优点:(1)语言规则十分简单,易学易用;(2)直接针对AutoCAD,易于交互;(3)解释执行,立竿见影。

AutoLISP的缺点是:(1)功能单一,综合处理能力差;(2)解释执行,程序运行速度慢;(3)缺乏很好的保护机制,源程序保密性差;(4)LISP用表来描述一切,并不能很好地反映现实世界和过程,跟人的思维方式也不一致;(5)不能直接访问硬件设备、进行二进制文件的读写。

AutoLISP的这些特点,使其仅适合于有能力的终端用户完成一些自己的开发任务。

二、第二代开发工具——ADS

ADS(AutoCAD Development System)是AutoCAD R11开始支持的一种基于C语言的灵活的开发环境。ADS可直接利用用户熟悉的C编译器,将应用程序编译成可执行文件后在AutoCAD环境下运行,从而既利用了AutoCAD环境的强大功能,又利用了C语言的结构化编程、运行效率高的优势。

与AutoLISP 相比,ADS优越之处在于:(1)具备错综复杂的大规模处理能力;(2)编译成机器代码后执行速度快;(3)编译时可以检查出程序设计语言的逻辑错误;(4)程序源代码的可读性好于AutoLISP。 而其不便之处在于:(1)C语言比LISP语言难于掌握和熟练应用;(2)ADS程序的隐藏错误往往导致AutoCAD,乃至 *** 作系统的崩溃;(3)需要编译才能运行,不易见到代码的效果;(4)同样功能ADS程序源代码比AutoLISP代码长很多。

三、第三代开发工具——Visual LISP,ARX及基于ActiveX Automation技术的VBA等

1.Visual LISP(VLISP)

VLISP是AutoLISP的换代产品。它与AutoLISP完全兼容,并提供它所有的功能,是新一代的AutoCAD LISP语言。VLISP对语言进行了扩展,可以通过Microsoft ActiveX Automation接口与对象交互。同时,通卜晌过实现反应器函数,还扩展AutoLISP响应事件的能力。作为开发工具,VLISP提供了一个完整的集成开发环境(IDE),包括编译器、调试器和其他工具,可以提高二次开发的效率 。另外,VLISP还提供了工具用于发布独立的应用程序。

2.ARX

ARX(AutoCAD Runtime eXtension)是AutoCAD R13之后推出的一个以世蔽C++语言为基础的面向对象的开发环境和应用程序接口。ARX程序本质上Windows动态连接库(DLL)程序,与AutoCAD共享地址空间,直接调用AutoCAD的核心函数,可直接访问AutoCAD数据库的核心数据结构和代码,以便能够在运行期间扩展AutoCAD固有的类及其功能,创建能够全面享受AutoCAD固有命令特权的新命令。ARX程序与AutoCAD、Windows之间均采用Windows消息传递机制直接通讯。

AutoLISP、ADS、ARX都是AutoCAD提供的内嵌式编程语言。AutoLISP和ADS都是通过内部进程通讯(IPC)来和AutoCAD通讯,它们与AutoCAD是相互分离的过程,而ARX以DLL形式与AutoCAD共享地址空间,如图2示。因此,与前两者相比,其速度更快、运行更稳定、更简单。由于是在Windows及VC++编程环境里运行,所以,对开发者的编程能力要求较高。

ObjectARX应用程序以C++为基本开发语言,具有面向对象编程方式的数据可封装性、可继承性及多态性的特点,用其开发的CAD软件具有模块性好、独立性强、连接简单、使用方便、内部功能高效实现以及代码可重用性强等特点,并且支持MFC基本类库,能简洁高效地实现许多复杂功能。

这里顺便提一下ADSRX。AutoCAD R14的开发环境ADSRX是ARX的一个子集,它等效于ADS。使用ADSRX,能够用C语言编写基于AutoCAD的程序,也能很方便地将ADS程序移植为ARX程序。

图3比较了AutoLISP、ADS、ADSRX和ARX的关于速度、暴露性、功能和要求使用每个API的编程经验等方面的编程接口。“暴露性”参数显示了用户编程错误的可能严重性。尽管ARX接口是四个API中最强有力的,它也具有产生严重编程错误的最大潜在性,如破坏AutoCAD数据结构等。其它编程环境要求较少的编程经验,但提供的功能和范围也较小。

可以说,AutoLISP着眼于应用程序的交互性,ADS C/C++着眼于应用程序的综合性,而ARX则着眼于应用程序的智能性。

3.基于ActiveX Automation技术的VBA等开发工具

ActiveX Automation是一套微软标准,以前称为OLE Automation技术。该标准允许通过外显的对象由一个Windows应用程序控制另一个Windows应用程序,这也是面向对象编程技术的精髓所在。AutoCAD从R14开始增加了作为ActiveX Automation服务器应用程序的功能,使得许多面向对象编译语言和应用程序可以通过ActiveX与AutoCAD进行通信,并 *** 纵AutoCAD的许多功能,如图4示。

ActiveX Automation服务器应用程序是通过自身对象的属性、方法、事件外显其功能。对象是服务器应用程序的简单而抽象的代表。不管是用VB、VC、OFFICE VBA等从外部,还是用AutoCAD VBA从内部对AutoCAD进行二次开发,都是通过调用AutoCAD的对象体系结构来进行的。AutoCAD 2000 ActiveX Automation技术将AutoCAD 2000的各种功能封装在AutoCAD ActiveX对象中,供编程使用。AutoCAD 2000中提供的所有对象组成一个树形结构,如图5示,最高层是Application对象,其它对象都是它的后代。为了得到一个特定的对象,必须从Application对象对其子孙进行遍历,直到找到该特定的对象。

ActiveX Automation技术的完全面向对象化编程的特点,使其开发环境具备了强大的开发能力和简单易用的优良特点,开发工具的选择也具有很大的灵活性。所以,利用ActiveX Automation技术,是极具潜力的一种开发手段。

四、结束语

以上对AutoCAD的三代开发工具分别作了简要介绍。从中可以看出,AutoCAD的二次开发工具真是“长江后浪推前浪,一代更比一代强”。目前,第一代的AutoLISP已能被第三代的VLISP完全替代;第二代的ADS在AutoCAD 2000中已不再支持;所以,第三代开发工具将成为今后AutoCAD二次开发的必然选择。而在第三代工具中具体选择哪一种,笔者认为,主要还应根据用户应用程序的需要和开发人员的编程经验。

按照笔者的观点,就目前在AutoCAD 中的状况而言:

1)Visual LISP

适于描述人机交互 *** 作的过程,善于编写模拟设计师思路的专业设计程序。对于各种用户输入的接收、错误识别与恢复等 *** 作具有相当优秀的功能,尤其是善于充分发挥CAGD功能的巨大作用,充分利用交互 *** 作的技巧。相比之下,具有最多样式的程序运行模式。不同版本的程序,相比之下,具有最好的兼容性,甚至可以直接运行。

这种程序设计可以找到大的资源,包括书籍、程序实例、英特网上的资源和技术交流。

过去AutoLISP 最大的不足是不能编译,较大的程序包没有“工程(Project)”的概念,这无疑对较大规模的程序设计造成了困难。而这些现在已经被 VLISP 圆满解决了,编译成VLX 的老的AutoLISP 程序,其效率也会比解释运行条件下提高5~8倍。

2)ADS

曾经是在 AutoLISP 之后的一种程序设计模式,在 R14 之前的AutoLISP 程序虽然是解释运行,仍比ADS程序快一些,因为实际上ADS是用AutoLISP与AutoCAD交互。从AutoCAD R14起,Autodesk已经不再支持和发展 ADS程序设计模式,同时却增加了Visual LISP,以进一步提高AutoLISP 的整体性能,同时用ObjectARX取代了ADS。

3)VBA

自 R14开始嵌套在AutoCAD 之中的程序设计方法,VBA是根据微软公司的规则,在每一个Windows下的应用软件都必须具有的功能。

其优点是可以很容易地使用Windows系统资源,使AutoCAD能容易地与其他Windows下的应用软件交互。VBA 对话框设计能力比DCL好得多,多图档环境下的应用程序也比也比VLISP提供了更多的支持。但由于它是使用ActiveX与AutoCAD交互,程序设计比较复杂。会成为与VLISP并列的另一种专业用户程序设计语言,不太容易学会。因为VBA并不就是VB,所以熟悉VB的人,在使用VBA作AutoCAD程序设计时,也需要新学大量的东西,只不过VBA的规则与VB充分相近。

在设计过程模拟类的程序设计中,VBA明显不如 AutoLISP那样顺利,毕竟 AutoLISP 脱胎于人工智能语言。另外,如果 VBA 作者因为“疏忽”,没有提供相应的方法和属性,老的AutoLISP能够访问的对象数据、能够激活的某些AutoCAD对话框,VBA却不能。VBA虽然不是编译运行,数据结构和程序写法却像ARX一样相当严格,这对于工程师来说,需要有一个适应过程,你只能按照VBA的可能去组织自己的数据,而不能像VLISP那样按照专业设计要求去创建数据结构。

比较明显的几个缺憾是:

VBA中不能像VLISP那样几乎随心所欲地使用AutoCAD命令,只能象脚本文件的模式,以字串方式向AutoCAD命令行发送一串响应,这个字串的内容也只好在自己的程序中生成和进行数据转换。这样,许多交互 *** 作的技巧,在VBA中不能直接借用。

VBA是以对象作为数据处理的基本单元,在VLISP中堪称特色的CAGD程序设计技术,在VBA中则无法实现。因此像Trim、Extend、Dim-Diameter之类的命令都不能真正实施,要想完成这样的 *** 作,相关数据只能在程序中自己计算。这样,程序设计就不能充分利用AutoCAD的 *** 作技巧,必然复杂和罗嗦。放着AutoCAD优秀的数据库,却不能充分发挥它的作用;本来能用AutoCAD完成的动作,却要自己编程实现。这就是VBA最大的缺憾。

VBA 另外的问题是不能编译,源程序始终以相当容易接近的方式,暴露在最终用户面前。很容易由于用户的误 *** 作,使曾经正常的应用程序出错甚至崩溃。这正好是老的 AutoLISP 的致命缺点,使用 VLISP 的程序包编译功能,目前还不能将 VBA 包装进去之后解决源代码加密的问题。VBA的源代码加密目前只有使用 PassWord。

VBA与Visual LISP 之间仅有比较简单的内部数据通道,例如处理简单的点位表。从这方面说,VBA的作者好像不太了解AutoCAD的特色功能,也不太了解用户们将会怎样使用AutoCAD进行自己的专业设计。

扩充VBA的功能可以用 VC++ / ARX 程序,但是相当复杂,对于一般工程师来说,很难掌握。对VBA的完善和扩充,只能等待Autodesk的工作结果。

4)ObjectARX

在Autodesk内部或增值软件开发商中使用。由于ARX是使用Visual C++作为基本程序设计语言,无论其效率、数据处理和软硬件的控制能力都是最好的,是唯一圆满地针对多图档环境的程序设计方法。是从根本上扩展 VLISP / VBA 的程序设计方法。

但是,与AutoCAD命令交互和对象数据库访问功能,ARX与VBA并没有实质性的区别,就是说,同样很难借用AutoCAD强大的CAGD功能和交互 *** 作的技巧。另外,要想真正发挥这种开发模式的作用,对于程序设计者的要求(计算机专业知识、软件专业知识等等)也较高,而且程序运行风险较大。要求程序自己做好各种数据的测试,自己设计好各种条件下的出错处理和恢复,否则ARX 程序的崩溃常常会连带 AutoCAD、甚至 *** 作系统一起崩溃。由于ARX技术是大部分开发商的工具,因此,真正有用的编程技巧也不太容易通过一般的交流得到。可见,这种开发模式不适于在专业设计工程师中间普及。

粗略地说:

ARX/VBA的特点在于以AutoCAD的对象、方法和属性为基本 *** 作数据,适合于“构建”AutoCAD的功能。实际上,一个对AutoCAD的 *** 作并不熟练的人,只要充分理解了AutoCAD的对象模型结构,也能写出 *** 控AutoCAD的程序。就是说,这种程序设计模式,并不太依赖于程序设计者熟悉AutoCAD *** 作的程度如何。换句话说:对AutoCAD *** 作的熟练程度,对于ARX/VBA程序设计并没有明显的帮助。

而VLISP则是灵活而充分地使用AutoCAD的现有功能,适合于“组合使用”AutoCAD的现有功能。这样,程序设计着对AutoCAD *** 作的数量程度,就明显地影响着程序设计的结果。就是说,这种程序设计模式,将能充分利用程序设计着使用AutoCAD的经验和技巧。当然,用VLISP按照ARX/VBA的ActiveX模式写程序,也是可以的。在本书中有不少这样的实例。但是这不是VLISP的特长。

作为 CAD 系统,通常由三个层次的软件组合而成:

1)设计软件的底台:提供界面、环境、核心算法、数据库等基础设施。现在我们是在 AutoCAD这个底台上进行工作。

2)设计支持软件,提供与设计需要相关的,比较专业的支持软件:国标图库、通用设计工具、设计手册等等。这些软件多数是由增值软件开发商完成的。

3)专业设计软件,提供窄范围、大深度的专业设计自动化或者辅助系统:例如:发动机装配工具设计、胶印机控制凸轮设计、组合机主轴箱设计等等。

实际上,CAD系统能否真正体现出它的存在价值,最明显的标志就是上述专业设计软件。这些软件真正起到了“设计”的作用。实践证明,在某个专业性很强的设计上,它确实能够替代工程师!

对于1)和2),可以由一些不必很了解设计,而软件知识较多的人来写。当然,应当由现场工程师进行测评,防止写成“学院派”的设计支持软件。而对于3),就只能由设计师直接参与来写,这样的题目范围较小,几乎是开发商永远的“盲区”。由于专业性太强,知识结构太偏,对于工科大学毕业,没有在这个行业里,做过几个真正的设计的人,很难听懂专业设计师的叙述,要求他完成这个程序,就太过分了。

可见,必须有一个能够被专业设计师所掌握,又能够发挥他们的长处(熟悉设计和交互 *** 作),避开他们的短处(软件知识较少)的开发方法。这就是AutoLISP。

可以在AutoLISP程序中引用AutoCAD的几乎所有的功能,进行图形处理的自动化,尤其是较深层的应用~对象数据库的 *** 作。

在Visual LISP的协助下,从对AutoCAD进行 *** 作的功能上讨论,仅比ARX少几个功能:自定义AutoCAD对象、多图档的深入管理等。从目前的情况看,AutoLISP是AutoCAD中几乎所有的应用程序的“总管、大管家”,而且目前只有AutoLISP 表达式,才能以添加在脚本文件、对话框程序、菜单、甚至VBA程序的ThisDrawing.SendCommand …中,更可以直接用在AutoCAD的命令行中响应几乎所有的命令。

(5)其它性能

LISP是典型的结构化程序设计语言,AutoLISP是解释运行,源程序保密性差,巨量数据的复杂运算效率较低,文件管理功能简单,但可以在绝大多数源程序内容不变的条件下,用Visual LISP将其编译成VLX程序包或者FAS程序,这样处理之后的AutoLISP程序,将具有与ARX程序相同的高保密性能,也将具有比解释运行明显提高的运行效率。而且,AutoLISP程序设计的复杂程度和运行风险大大低与ARX,绝少在程序崩溃后连带AutoCAD崩溃。来源: http://www.jxcad.com.cn/read-htm-tid-92949.html

程序开发中的框架(例如1000万+行的Qt)往往是对常见功能的封装(类似银袭于成语对常用含义的代指,不同点在于应用框架最终对CPU表达含义时候会把成语替换为原本含义-通过函数调用),抛开框架,程序会变得因缺少一些'固定成语'(函差搏裂数)的'释义'(函数实现)而变得无法执行。

所以,程序框架理解为基础或者机械标准件(例如螺丝螺母这些有明虚闭确标准的机械部件)更为贴切。

这样理解,假如你要造一辆马车,在没有框架的情况下,你需要自己去伐木,去把木头做成木板,木棍,然后组成轮子,门,等部件,然后组装起来,但如果你用了框架,就相当于你有现成的轮子,门等部件,你只需要组装一下就可以了。

可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。 

拓展资料:

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12546025.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存