objectARX二次开发的时候,经常会用到一些重复使用的类,如果类已经足够的好,那么我们可以编译成静态库,加快开发和编译的速度,提高工作效率。

环境vs2010+objectARX2012wizard,以及各种编译器平台,我这里主要是用v90 编译器平台。

下面就开始添加一个win32项目。

在win32应用程序向导中,我们下一步,直接勾选静态库,MFC和预编译头。

项目新建后,设置项目属性。

在c/c++选项的预处理器中,我们这里删除_DEBUG,因为这个“预定义"可能会影响一些类的问题,这个因人而异。不一定按此操作

在代码生成这个选项中,将运行库改为多线程dll(/md)模式,保持和arx配置相同。

然后在stdAfx.h头文件中添加arx的头文件 arxheaders.h (这个是关键,他包含了大多数arx头文件,以及lib库,dll导出等)

 由于新建的win32项目没有x64平台,我们在配置好win32的基本属性后,需要新建一个x64平台
 
 

新建完成后,修改c++的预处理器的预定义win32为_WIN64

如果你的vs没有指定默认的包含和库目录,那么需要在这个vc++目录中添加包含目录和库目录,就如同arx配置中一样。我这里是通过其他方式添加的。

因为我是打算在v90(vs2008平台)平台编译,所以这个编译器平台需要改到v90

然后我们就可以添加以前写的类文件了。类文件一般是头文件和cpp实现文件,我们可以从以前的项目中获得。。

正常情况下,可以编译成功的。。

自己的arx静态库基本就做好了。。

下面我们来简单测试下。

新建一个arx工程,或者用现有的工程也行。。vc平台要和lib库的平台一致,debug或者release也要一致。

在需要调用静态库的cpp文件中我们包含需要的头文件和定义调用库文件。。

比如

我这里没有写路径,所以要在vc++目录中指定这两个文件的路径,如同arx一样。

下面我们就可以使用静态库中的类了。。

正常情况下,可以编译完成。。

加载完成后运行命令,结果正常。

以上就是objectARX制作属于自己的静态库的基本方式,通过这样的方式,我们就可以建立属于自己的arx库。

我们还可以做得更好,比如,我们有很多个类,总不能每一个类都要去写包含和调用库。

实际上我们可以学习arx的方式,写一个myarxlibheaders.h

把所有自己库的头文件包含进去,把lib调用也加入到其中,通过vc版本号的不同,调用不同的库。。release或者debug。

ObjectARX二次开发创建自己的静态库,如同objectARX库一样的更多相关文章

  1. 2、Arx二次开发创建第一个应用程序

    一.本节课程 Arx二次开发创建第一个应用程序 二.本节要讲解的知识点 1.手动创建ARX的应用的步骤. 2.应用向导创建ARX应用程序的步骤. 三.具体内容 1.需求:创建一个Hello World ...

  2. C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五)

    C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五) 1.创建一个图形对象的步骤如下见上一篇博客(三)2.添加删除实体的工具函数见上一篇博客(四) 3.添加圆的例子(完 ...

  3. C#/AutoCAD 2018/ObjectArx/二次开发添加删除实体的工具函数(四)

    1.添加删除实体 C# ObjectARX二次开发添加删除实体是非常容易主要代码如下: 添加实体: objId = btr.AppendEntity(entity); trans.AddNewlyCr ...

  4. c++ Arx二次开发创建椭圆和样条曲线

    一.本节课程 c++ Arx二次开发创建椭圆和样条曲线 二.本节要讲解的知识点 1.如何应用C++ ARX二次开发创建椭圆(对AcDbEllipse类的构造函数的直接封装和根据外接矩形来创建椭圆) 2 ...

  5. 4、c++ Arx二次开发创建多段线

    一.本节课程 c++ Arx二次开发创建多段线 二.本节要讲解的知识点 如何应用C++ ARX二次开发创建多段线(AcDbPolyline.AcDb2dPolyLine.AcDb3dPolyline的 ...

  6. Civil 3D 二次开发 创建Civil 3D 对象—— 01 —— 创建几何空间点

    这一小节,我们创建派生于CivilCreateEntityDemo的类CivilCreateCogoPoint,来创建几何空间点. 1 创建类并添加字段及方法 首先在项目资源管理器中向本项目中添加类, ...

  7. C#/AutoCAD 2018/ObjectArx/二次开发添加图形对象步骤和添加直线的例子(三)

    1.创建一个图形对象的步骤如下(1)得到创建对象的图形数据库:(2)在内存中创建实体类的一个对象:(3)定义一个指向当前数据库的事务处理:(4)打开图形数据库的块表:(5)打开一个存储实体的块表记录( ...

  8. Civil 3D 二次开发 创建AutoCAD对象—— 00 ——

    不积跬步无以至千里,不积小流无以成江海.虽然创建一条直线.添加一个图层这样的小程序没有什么实际意义(内部命令很简单就可以完成),但对于初学二次开发的您来说,这可是一大步,这一步跨出去,您就跨进了二次开 ...

  9. NX二次开发-创建(临时)坐标系

    函数:UF_CSYS_create_csys() . UF_CSYS_create_temp_csys() 函数说明:创建坐标系 .创建临时坐标系 用法: #include <uf.h> ...

随机推荐

  1. 3D Math Keynote

    [3DMathKeynote] 1.常用公式. 1)(A*B)^T = B^T*A^T.   2)(A*B)^-1 = B^-1*A^-1. 3)|A*B| = |A|*|B|. 4)|M^T|=|M ...

  2. swift新建类和子类方法的重写与重载

    1.首先什么是重写与重载? 一.重写(override) override是重写(覆盖)了一个方法,以实现不同的功能.一般是用于子类在继承父类时,重写(重新实现)父类中的方法. 重写(覆盖)的规则: ...

  3. eclipse 使用 scons 编译的配置说明

    eclipse版本: eclipse-cpp-kepler-SR1-win32.zip 创建项目必须选择“Makefile Project” 然后进入“Projects  Properities” 先 ...

  4. DecoratorPattern(23种设计模式之一)

    参考书籍:设计模式-可复用面向对象软件基础(黑皮书) 书中写到,装饰者模式的意图是动态的给对象添加一些额外的职责.就增加功能来说,Decorator模式相比生成子类更为灵活.装饰者模式的另一个别名是包 ...

  5. HBase数据读写流程(1.3.1)

    ===数据写入流程=== 源码:https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/ha ...

  6. 通过MySql自动同步刷新redis

    在服务端开发过程中,一般会使用MySQL等关系型数据库作为最终的存储引擎,Redis其实也可以作为一种键值对型的数据库,但在一些实际场景中,特别是关系型结构并不适合使用Redis直接作为数据库.这俩家 ...

  7. mybatis :xml文件中传入参数和if标签结合使用时要点

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Reflecti ...

  8. 1118 Lining Up

    题目链接: http://poj.org/problem?id=1118 题意: 给定n个点, 求在同一直线上的点最多的直线上点的数目. 解法: 简单题目, 规模比较小,  暴力搜索. #includ ...

  9. centos7部署JavaWeb项目

    centos7部署JavaWeb项目共有三步 1.配置java环境 2.配置tomcat环境. 3.部署JavaWeb项目 一.配置java环境 1.1安装java 参考我的另一篇博文:https:/ ...

  10. MyBatis和Hibernate相比较

    作者:乌拉拉链接:http://www.zhihu.com/question/21104468/answer/58579295 1.开发对比开发速度 Hibernate的真正掌握要比Mybatis来得 ...