原文: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相关推荐

  1. webuploader 怎么在react中_另辟蹊径搭建阅读React源码调试环境支持所有React版本细分文件断点调试...

    引言(为什么写这篇文章) 若要高效阅读和理解React源码,搭建调试环境是必不可少的一步.而常规方法:使用react.development.js和react-dom.development.js调试 ...

  2. python3版本代码大全_python3中的

    出品 | FlyAI 编译 | 林椿眄 编辑 | Donna Python 已经成为机器学习及其他科学领域中的主流语言.它不但与多种深度学习框架兼容,而且还包含优秀的工具包和依赖库,方便我们对数据进行 ...

  3. 学习如何在AutoCad土木工程中绘制建筑设计图

    学习如何在AutoCad中绘制建筑设计图从平面图到AutoCad土木工程中的整栋建筑 你会学到: 如何绘制房屋地图 如何绘制建筑设计 如何从AutoCad打印或出图 AutoCaD使用 AutoCaD ...

  4. 十周后,62%的PHP网站将运行在一个不受支持的PHP版本上

    根据W3Techs的统计数据,目前约有78.9%的网站使用PHP开发. \\ 但是,PHP 5.6.x的安全支持将在2018年12月31日正式停止,这标志着对古老的PHP 5.x分支版本的支持都将结束 ...

  5. tensorflow2.0支持的python版本-TensorFlow 版本兼容性

    本文面向需要在不同版本的 TensorFlow 之间向后兼容(针对代码或者数据)的用户,以及想要修改 TensorFlow 并同时保持兼容性的开发者. 语义化版本控制 2.0 TensorFlow 的 ...

  6. 【错误记录】Android 编译时技术版本警告 ( 注解处理器与主应用支持的 Java 版本不匹配 )

    文章目录 一.报错信息 二.问题分析 三.解决方案 一.报错信息 在使用 Android 编译时技术 , 涉及 编译时注解 , 注解处理器 ; 开发注解处理器后 , 编译报如下警告 ; 该警告不会影响 ...

  7. 支持多个版本的ASP.NET Core Web API

    基本配置及说明 版本控制有助于及时推出功能,而不会破坏现有系统. 它还可以帮助为选定的客户提供额外的功能. API版本可以通过不同的方式完成,例如在URL中添加版本或通过自定义标头和通过Accept- ...

  8. 虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。 模块“Upgrade”启动失败。 未能启动虚拟机(修改.vmx文件virtualHW.version = “xx“字段)

    1.找到并通过记事本程序打开虚拟机的.vmx文件: 2.找到文件中的virtualHW.version = "19"字段,修改该字段为virtualHW.version = &qu ...

  9. SqlServer还原数据库时提示:异常终止,不能在此版本的SQL Server中启动,因为它包含分区函数

    场景 在SqlServer Management中进行数据库还原时提示: 数据库不能在此版本的SQL Server中启动,因为它包含分区函数. 点击左下角的查看详细信息 实现 电脑上安装的是SQL S ...

最新文章

  1. 从换脸到换姿势,AI 在图像处理的道路上越走越魔幻
  2. matlab 转动惯量 叠加,一种汽车动力总成系统转动惯量合成方法
  3. Python多线程threading和多进程multiprocessing的区别及代码实现
  4. 【Protocol Buffer】Protocol Buffer入门教程(八):Windows平台部署Protobuf环境
  5. SQLAlchemy中filter_by()和filter()的用法不同
  6. linux显卡驱动卸载和安装,Linux下Nvidia显卡驱动卸载和卸载后的问题
  7. “阿里灵杰”问天引擎电商搜索算法赛 - 数据说明2022
  8. 数论和有限域的基本概念
  9. 汽车级485通信电路
  10. 网站建设备案和不备案的一些疑惑问题大全
  11. 数据结构与算法分析:C语言描述(原书第2版) PDF
  12. 微信支付商户平台:商户简称
  13. c语言一个整数犯二的程度编程,团体程序设计天梯赛-练习集 L1-017 到底有多二...
  14. 史玉柱自述:我是如何带队伍的
  15. 解决数据库高并发的常见方案
  16. 科研用深度学习+有限元工作站的DIY装机配置(预算:5-6万)
  17. oracle查询sql语句
  18. 内核aio_AIO 简介
  19. [NKNY]寒假培训《NY寒假有奖欢乐赛 》总结
  20. 银联开放平台操作指南合辑

热门文章

  1. python 开发APP教程
  2. 甜美动漫mac高清壁纸分享
  3. 基于SSM框架的酒店管理系统
  4. 小马哥--高仿苹果6 主板型号S106刷机 拆机主板图与开机界面图 多图展示
  5. 图解汉诺塔问题(递归求解)
  6. out输出口_Line Out是扬声器输出端口,用于外接音箱或功放等。_学小易找答案
  7. Vue-cli中 vue.config.js 的配置详解
  8. 使用 docker 一键部署卷王(SurveyKing)调查问卷考试系统
  9. 优化关键词又有新方法!微软Bing让机器人学习
  10. 【C4AI-2022】基于飞桨的井下煤流视频智能分析系统