ObjectARX二次开发创建自己的静态库,如同objectARX库一样
objectARX二次开发的时候,经常会用到一些重复使用的类,如果类已经足够的好,那么我们可以编译成静态库,加快开发和编译的速度,提高工作效率。
环境vs2010+objectARX2012wizard,以及各种编译器平台,我这里主要是用v90 编译器平台。
下面就开始添加一个win32项目。

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

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

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

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

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

新建完成后,修改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库一样的更多相关文章
- 2、Arx二次开发创建第一个应用程序
一.本节课程 Arx二次开发创建第一个应用程序 二.本节要讲解的知识点 1.手动创建ARX的应用的步骤. 2.应用向导创建ARX应用程序的步骤. 三.具体内容 1.需求:创建一个Hello World ...
- C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五)
C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五) 1.创建一个图形对象的步骤如下见上一篇博客(三)2.添加删除实体的工具函数见上一篇博客(四) 3.添加圆的例子(完 ...
- C#/AutoCAD 2018/ObjectArx/二次开发添加删除实体的工具函数(四)
1.添加删除实体 C# ObjectARX二次开发添加删除实体是非常容易主要代码如下: 添加实体: objId = btr.AppendEntity(entity); trans.AddNewlyCr ...
- c++ Arx二次开发创建椭圆和样条曲线
一.本节课程 c++ Arx二次开发创建椭圆和样条曲线 二.本节要讲解的知识点 1.如何应用C++ ARX二次开发创建椭圆(对AcDbEllipse类的构造函数的直接封装和根据外接矩形来创建椭圆) 2 ...
- 4、c++ Arx二次开发创建多段线
一.本节课程 c++ Arx二次开发创建多段线 二.本节要讲解的知识点 如何应用C++ ARX二次开发创建多段线(AcDbPolyline.AcDb2dPolyLine.AcDb3dPolyline的 ...
- Civil 3D 二次开发 创建Civil 3D 对象—— 01 —— 创建几何空间点
这一小节,我们创建派生于CivilCreateEntityDemo的类CivilCreateCogoPoint,来创建几何空间点. 1 创建类并添加字段及方法 首先在项目资源管理器中向本项目中添加类, ...
- C#/AutoCAD 2018/ObjectArx/二次开发添加图形对象步骤和添加直线的例子(三)
1.创建一个图形对象的步骤如下(1)得到创建对象的图形数据库:(2)在内存中创建实体类的一个对象:(3)定义一个指向当前数据库的事务处理:(4)打开图形数据库的块表:(5)打开一个存储实体的块表记录( ...
- Civil 3D 二次开发 创建AutoCAD对象—— 00 ——
不积跬步无以至千里,不积小流无以成江海.虽然创建一条直线.添加一个图层这样的小程序没有什么实际意义(内部命令很简单就可以完成),但对于初学二次开发的您来说,这可是一大步,这一步跨出去,您就跨进了二次开 ...
- NX二次开发-创建(临时)坐标系
函数:UF_CSYS_create_csys() . UF_CSYS_create_temp_csys() 函数说明:创建坐标系 .创建临时坐标系 用法: #include <uf.h> ...
随机推荐
- Kafka如何保证数据不丢失
Kafka如何保证数据不丢失 1.生产者数据的不丢失 kafka的ack机制:在kafka发送数据的时候,每次发送消息都会有一个确认反馈机制,确保消息正常的能够被收到,其中状态有0,1,-1. 如果是 ...
- Spark角色介绍及spark-shell的基本使用
Spark角色介绍 1.Driver 它会运行客户端的main方法,构建了SparkContext对象,它是所有spark程序的入口 2.Application 它就是一个应用程序,包括了Driver ...
- ios7 适配
1.状态栏20px高度问题 ) { [application setStatusBarStyle:UIStatusBarStyleLightContent]; self.window.clipsToB ...
- 1.在VC编译器下面为什么每个头文件以及源文件都要包含“stdAfx.h”,那么stdAfx.h中到底存放了什么,用来做什么?
我们知道在windows平台下面很多的文件后缀名中都含有Afx,其实Afx是微软公司的一个技术研发团队名称,vc下的“stdAfx.h”和“stdAfx.cpp”文件就是有他们所研发出来的,为什么要这 ...
- Mosquitto 单向SSL配置
Mosquitto 单向SSL配置 摘自:https://blog.csdn.net/a_bcd_123/article/details/70167833 2017年04月14日 06:56:06 s ...
- zigbee组播通信原理
组播: 在zigbee网络里面,把网络节点标记为组的方式来进行通信:发送模块如果发送的组号和网络里标记模块的组号相对应,那么这些模块就可以拿到这些无线数据包. 特点: 1.分组中组的编号有两个字节. ...
- ofo开锁共享平台
http://www.cnblogs.com/mengyu/p/7700980.html
- Java Persistence with MyBatis 3(中文版) 第一章 MyBatis入门
本章将涵盖以下话题: ž MyBatis是什么? ž 为什么选择MyBatis? ž MyBatis安装配置 ž 域模型样例 1.1 MyBatis是什么 MyBatis是一个简化和实现了Ja ...
- centos7设置、查看、删除环境变量的方法
centos查看环境变量与设置环境变量在使用过程中很常见,本文整理了一些常用的与环境变量相关的命令,感兴趣的朋友可以参考下希望对你有所帮助 1. 显示环境变量HOME(红色部分代表要输入的命令,不要把 ...
- 【转】ACM各种WA的说明及可能的原因
转载地址:http://blog.csdn.net/qq_15015129/article/details/52738184 1.答案错误 —— wrong answer 就是最常见的.这个没办法,基 ...