cad.net GeometricExtents出错了 调试看不到文字
使用Visual Studio 2013调试AutoCAD 有很多理由希望使用最新发布的Visual Studio 2013来开发和调试用于AutoCAD的.NET模块。其中一个主要的是期待已久的对64位应用程序的“编辑并继续”支持的添加。
不幸的是,在本文中,我们将看到为什么在AutoCAD中调试64位.NET模块时,尽管等待,E&C还是不能工作。 从VS2013调试器运行AutoCAD时的主要问题表现为字体加载问题。如果从vs2013启动autocad以调试64位类库(即使没有实际加载模块),
则当运行诸如style(尝试在对话框中显示字体信息)等命令时,autocad将崩溃。这对于我测试过的所有版本的AutoCAD都是正确的;可以追溯到AutoCAD ,但对于之前的版本,这可能也是正确的。 感谢Samir Bittar让我注意到这个问题。这个问题似乎也在论坛上进行了详细讨论。在AutoCAD工程团队中,
我们上海办事处的工程师丁亚瑟(Arthur Ding)对这个问题进行了非常深入的研究。
在调试.NET模块时,Arthur发现了VS2013与VS2012的工作方式不同,并使在AutoCAD中所做的核心假设失效。 当VS2013启动AutoCAD(至少通过启用“编辑并继续”的调试代码路径)时,会创建一个附加线程,用于在退出前将基本模块(如acdb*.dll)加载到进程中。
对于VS2012,情况并非如此:它是AutoCAD的主线程加载基本模块,就像在调试器外部运行时一样。
我们的ACDB模块自然希望由AutoCAD的主线程加载,因此缓存加载线程的ID以供以后使用。 当前遇到的主要问题是访问某些字体时:加载这些字体失败,因为加载尝试是从ACDB不识别为主线程的线程进行的(为了安全起见,这是ACDB不允许的–它不是线程安全的,因此阻止了从ARbit访问数据库操作线程)。
然后访问字体时(例如,在样式对话框或多行文字编辑器中),这会导致(最多)错误或(最多)崩溃。 好消息是,使用VS2013有两种简单的方法可以避免此问题,这两种方法都可以防止AutoCAD崩溃(无论如何,由于这个特定的问题)。 通过工具–>选项–>调试打开“使用托管兼容性模式”。
从项目–>属性–>调试中打开“启用本机代码调试”。
后者会带来性能损失,因为它显然需要更多的工作来关注autocad中的非托管代码和底层操作系统(其中相当一部分)。
坏消息是这两个选项都禁用了64位应用程序的“编辑并继续”。因此,虽然可以利用VS2013使用上述方法之一调试64位.NET模块,但在这样做时,您将无法使用VS2013最期待的新功能之一。 [似乎在使用VS2013调试REVIT时也存在问题。有关更多信息,请参阅杰里米博客上的这篇文章。]
cad.net GeometricExtents出错了 调试看不到文字的更多相关文章
- 写出易调试的SQL(修订版)
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
- 写出易调试的SQL
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
- “出错了”和报告Bug的艺术
"出错了." 没有那句话能像"出错了"一样让程序员/开发者如此沮丧,心里翻江倒海,怒火一点即燃,还要死掉一大片脑细胞. 这句生硬的开场白通常标志着让开发者恐惧的 ...
- Python中单元测试出错了,会怎么样?
在上一篇中,我们看到了单元测试正常通过时的情况,如果我们边修改一下要测试的函数,然后再运行单元测试,会出现什么情况. 原say_hello_name.py def hello_name(name): ...
- 为什么你SQL Server中SQL日期转换出错了呢?
开发人员有时候使用类似下面SQL将字符串转换为日期时间类型,乍一看,这样的SQL的写法是没有什么问题的.但是这样的SQL其实有时候就是一个定时炸弹,随时可能出现问题(),下面简单对这种情况进行一个简单 ...
- 写出易调试的SQL—西科软件
1.前言 上篇 写出易调试的SQL , 带来了一些讨论, 暴露了不能重用执行计划和sql注入问题, 十分感谢园友们的建议 . 经过调整后 ,将原来的SQLHelper 抓SQL 用做调试环境用, 发布 ...
- 使用VSS2005的时候报错:输入正确的服务器地址依然出错了
使用VSS2005的时候报错:输入正确的服务器地址依然出错了 使用VSS2005的时候报错: 在安装完vss客户端,进入vss服务器的时候,需要vss服务器的ip和数据库名称.以及初始化文件, 我在进 ...
- 亚洲最佳电影TOP100出炉 你看过几部?
亚洲最佳电影TOP100出炉 你看过几部? 在成立20周年之际,釜山国际电影节和釜山电影中心合作的Asian Cinema 100计划邀请亚洲电影领域较为权威的评论人和电影人共同评选出一张『100 ...
- eclipse中的出现在打包一次后,后面新建的项目都出错了,出现support_v7下面出现红线及解决方法及为什么eclipse中项目继承ActionBarActivity解决方法一样
第一次写博客,有什么问题或者想法的希望各位可以进行评论交流,望大家多多包涵! 遇到的问题是在新建的项目都出错了,出现support_v7下面出现红线及解决方法及为什么eclipse中项目继承Actio ...
随机推荐
- 线程之间灵活传递信号(ManualResetEventSlim )
当主程序启动时,首先创建ManualResetEventSlim 类的一个实例.然后启动三个线程,等待事件信号通知它们继续执行. /// <summary> /// 创建 ManualRe ...
- asp.net MVC中使用EasyUI Treegrid 树形网格
引入CSS和JS <link href="~/Content/plugins/jquery-easyui-1.7.0/themes/default/easyui.css" r ...
- 修改Nginx配置参数解决http状态码:413上传文件大小限制问题
修改Nginx上传文件大小限制 我们使用ngnix做web server的时候,nginx对上传文件的大小有限制,默认是1M. 当超过大小的时候会报413(too large)错误.这个时候我们要修改 ...
- 关于 Java 关键字 volatile 的总结
1 什么是 volatile volatile 是 Java 的一个关键字,它提供了一种轻量级的同步机制.相比于重量级锁 synchronized,volatile 更为轻量级,因为它不会引起线程上下 ...
- docker部署zabbix
我相信大家都已经会再物理机上跑zabbix并且监控了,那么有没有想过在docker中跑zabbix?下面咱们来看看如何在docker中搭建zabbix并且监控 部署环境 2台物理机机器: zabbix ...
- Nginx编译安装脚本
Nginx是高性能的web服务器和反向代理服务器,在互联网公司中被广泛使用.以下是Nginx在centos7系统下的一键编译安装脚本,仅供参考,具体编译参数选项请结合实际生产环境需求进行选择,脚本 ...
- springboot集成spring data ElasticSearch
ES支持SpringBoot使用类似于Spring Data Jpa的方式查询,使得查询更加方便. 1.依赖引入 compile “org.springframework.boot:spring-bo ...
- 201871020225-牟星源《面向对象程序设计(JAVA)》第二周学习总结
正文: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-dai ...
- $.fn与$.fx什么意思; $.extend与$.fn.extend用法区别; $(function(){})和(function(){})(jQuery)
$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc() 那么你可以这样子:$("#div").abc(); 通常使 ...
- Python基础之输出格式和If判断
格式化输出的三种方式 一.占位符 #占位符 name = 'nick' age = 19 print('my name is %s my age is %s' % (name, age)) age = ...