支持多个版本的AutoCAD——C#中的条件编译——Through the Interface
原文:Supporting multiple AutoCAD versions - conditional compilation in C#
有人问通过电子邮件如何获取上周发布的导入块的代码,然后在昨天的博文中讨论了如何在AutoCAD 2006中工作。我一直在使用AutoCAD 2007本,但为使它能在2007上工作只需要做很少的改动。
有人问通过电子邮件如何获取上周发布的导入块的代码,然后在昨天的博文中讨论了如何在AutoCAD 2006中工作。我一直在使用AutoCAD 2007本,但为使它能在2007上工作只需要做很少的改动。
首先,你需要确保你引用到项目中的acmgd.dll和acdbmgd.dll是正确的版本(可以安装的AutoCAD的版本的路径来区分它们)
其次,你需要稍微修改您的代码,如wblockcloneobjects()从2006到2007的时候改变了它的签名。下面的代码段显示了如何使用预处理器指令执行C#的条件编译。你只需要在你的项目设置中设置AC2006或AC2007作为“条件编译符号”:
#if AC2006
mapping = sourceDb.WblockCloneObjects(blockIds,
destDb.BlockTableId,
DuplicateRecordCloning.Replace,
false);
#elif AC2007
sourceDb.WblockCloneObjects(blockIds,
destDb.BlockTableId,
mapping,
DuplicateRecordCloning.Replace,
false);
#endif
在上述代码中你可能会使用#else而不是#elif,仅仅只是因为因为这会使你的代码更加适应未来的更改:它会自动支持新版本而不需要特别添加代码用以检查他们。
另一方面,你可以指定一整个方法只在特定的版本上编译。首先,你需要导入System.Diagnostics命名空间。
然后你可以使用条件属性来声明一个特定的方法(在这里是一个命令)为一个特定版本的AutoCAD(如果你愿意,你也可以通过条件预处理器的DEBUG符号指定一个Debug-only命令):
namespace BlockImport
{
public class BlockImportClass
{
[Conditional("AC2007"),CommandMethod("IB")]
public void ImportBlock()
{
...
支持多个版本的AutoCAD——C#中的条件编译——Through the Interface相关推荐
- webuploader 怎么在react中_另辟蹊径搭建阅读React源码调试环境支持所有React版本细分文件断点调试...
引言(为什么写这篇文章) 若要高效阅读和理解React源码,搭建调试环境是必不可少的一步.而常规方法:使用react.development.js和react-dom.development.js调试 ...
- python3版本代码大全_python3中的
出品 | FlyAI 编译 | 林椿眄 编辑 | Donna Python 已经成为机器学习及其他科学领域中的主流语言.它不但与多种深度学习框架兼容,而且还包含优秀的工具包和依赖库,方便我们对数据进行 ...
- 学习如何在AutoCad土木工程中绘制建筑设计图
学习如何在AutoCad中绘制建筑设计图从平面图到AutoCad土木工程中的整栋建筑 你会学到: 如何绘制房屋地图 如何绘制建筑设计 如何从AutoCad打印或出图 AutoCaD使用 AutoCaD ...
- 十周后,62%的PHP网站将运行在一个不受支持的PHP版本上
根据W3Techs的统计数据,目前约有78.9%的网站使用PHP开发. \\ 但是,PHP 5.6.x的安全支持将在2018年12月31日正式停止,这标志着对古老的PHP 5.x分支版本的支持都将结束 ...
- tensorflow2.0支持的python版本-TensorFlow 版本兼容性
本文面向需要在不同版本的 TensorFlow 之间向后兼容(针对代码或者数据)的用户,以及想要修改 TensorFlow 并同时保持兼容性的开发者. 语义化版本控制 2.0 TensorFlow 的 ...
- 【错误记录】Android 编译时技术版本警告 ( 注解处理器与主应用支持的 Java 版本不匹配 )
文章目录 一.报错信息 二.问题分析 三.解决方案 一.报错信息 在使用 Android 编译时技术 , 涉及 编译时注解 , 注解处理器 ; 开发注解处理器后 , 编译报如下警告 ; 该警告不会影响 ...
- 支持多个版本的ASP.NET Core Web API
基本配置及说明 版本控制有助于及时推出功能,而不会破坏现有系统. 它还可以帮助为选定的客户提供额外的功能. API版本可以通过不同的方式完成,例如在URL中添加版本或通过自定义标头和通过Accept- ...
- 虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。 模块“Upgrade”启动失败。 未能启动虚拟机(修改.vmx文件virtualHW.version = “xx“字段)
1.找到并通过记事本程序打开虚拟机的.vmx文件: 2.找到文件中的virtualHW.version = "19"字段,修改该字段为virtualHW.version = &qu ...
- SqlServer还原数据库时提示:异常终止,不能在此版本的SQL Server中启动,因为它包含分区函数
场景 在SqlServer Management中进行数据库还原时提示: 数据库不能在此版本的SQL Server中启动,因为它包含分区函数. 点击左下角的查看详细信息 实现 电脑上安装的是SQL S ...
最新文章
- 从换脸到换姿势,AI 在图像处理的道路上越走越魔幻
- matlab 转动惯量 叠加,一种汽车动力总成系统转动惯量合成方法
- Python多线程threading和多进程multiprocessing的区别及代码实现
- 【Protocol Buffer】Protocol Buffer入门教程(八):Windows平台部署Protobuf环境
- SQLAlchemy中filter_by()和filter()的用法不同
- linux显卡驱动卸载和安装,Linux下Nvidia显卡驱动卸载和卸载后的问题
- “阿里灵杰”问天引擎电商搜索算法赛 - 数据说明2022
- 数论和有限域的基本概念
- 汽车级485通信电路
- 网站建设备案和不备案的一些疑惑问题大全
- 数据结构与算法分析:C语言描述(原书第2版) PDF
- 微信支付商户平台:商户简称
- c语言一个整数犯二的程度编程,团体程序设计天梯赛-练习集 L1-017 到底有多二...
- 史玉柱自述:我是如何带队伍的
- 解决数据库高并发的常见方案
- 科研用深度学习+有限元工作站的DIY装机配置(预算:5-6万)
- oracle查询sql语句
- 内核aio_AIO 简介
- [NKNY]寒假培训《NY寒假有奖欢乐赛 》总结
- 银联开放平台操作指南合辑
热门文章
- python 开发APP教程
- 甜美动漫mac高清壁纸分享
- 基于SSM框架的酒店管理系统
- 小马哥--高仿苹果6 主板型号S106刷机 拆机主板图与开机界面图 多图展示
- 图解汉诺塔问题(递归求解)
- out输出口_Line Out是扬声器输出端口,用于外接音箱或功放等。_学小易找答案
- Vue-cli中 vue.config.js 的配置详解
- 使用 docker 一键部署卷王(SurveyKing)调查问卷考试系统
- 优化关键词又有新方法!微软Bing让机器人学习
- 【C4AI-2022】基于飞桨的井下煤流视频智能分析系统