cad.net GeometricExtents出错了 调试看不到文字
{7.gif)
使用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 ...
随机推荐
- vue数据修改不同步更新的问题解决方案
最近在做一个组件封装的功能,用到父组件将数组(this.DataSource,this.DefaultItem)传到给子组件,子组件接受该数组来进行添加数组和删除数组的操作.因为子组件无法直接修改父组 ...
- layui 动态表格设置单元格样式
col.push({ field: , templet: function (d) { ") { return '<span style="color:white;backg ...
- Nuxt中使用Vant,完成通知栏Notify的提示
第一次移动端开发,UI方面选择了使用vant框架,但是vant官网写的使用,在nuxt项目中照搬官方的实例,各种报错,所以还得靠自己(使用方法在最后) 官方实例: 方法一:直接复制粘贴的时候,报错No ...
- java hibnernet测试@test 时不提交保存的事务
开始保存时不能提交数据报错: org.hibernate.HibernateException: Could not obtain transaction-synchronized Session f ...
- pandas基础:Series与DataFrame操作
pandas包 # 引入包 import pandas as pd import numpy as np import matplotlib.pyplot as plt Series Series 是 ...
- Asp.Net SignalR 使用记录 技术回炉重造-总纲 动态类型dynamic转换为特定类型T的方案 通过对象方法获取委托_C#反射获取委托_ .net core入门-跨域访问配置
Asp.Net SignalR 使用记录 工作上遇到一个推送消息的功能的实现.本着面向百度编程的思想.网上百度了一大堆.主要的实现方式是原生的WebSocket,和SignalR,再次写一个关于A ...
- 使用Git Flow规范!
Git Flow常用的分支 Production 分支 也就是我们经常使用的Master分支,这个分支最近发布到生产环境的代码,最近发布的Release, 这个分支只能从其他分支合并,不能在这个分支直 ...
- (原)在anaconda3+ubuntu16.04中编译Pose flow中的deepmatching动态库
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/11285239.html 参考网址: https://github.com/YuliangXiu/Po ...
- UDP基础
UDP主要特点: (1)UDP是无连接的,发送数据不需要建立连接,减少了开销和发送数据之前的时延. (2)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持连接状态表. (3)UDP面向报 ...
- iOS开发xib控件删不掉,修改xib运行不发生改变,修改xib不管用
修改xib控件tag值,颜色,大小,甚至删除发现编译.运行之后效果没改变,用代码修改内容发现管用, 其实只需要clean一下!^_^ 快捷键:shift + command + k