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 ...
随机推荐
- jdk8 接口的变化
在jdk8之前,interface之中可以定义变量和方法,变量必须是public.static.final的,方法必须是public.abstract的.由于这些修饰符都是默认的以下写法等价 publ ...
- C#根据流下载文件
C#从服务器下载文件可以使用下面4个方法:TransmitFile.WriteFile.WriteFile和流方式下载文件,并保存为相应类型,方法如下: .TransmitFile实现下载 prote ...
- angular 监听离开页面执行相关操作
$scope.$on("$destroy", function() { //...})
- 处理 unassigned shard
#查看所有分片 GET _cat/shards curl 10.1.2.2:9200/_cat/indices/iis_log* #查看索引的分片状态 #查看第一个unassigned shard的 ...
- netty框架概述
概述 最近在学习netty的相关知识,也在看netty的源码,光看不练假把式,所以也正好利用自己学习的机会写几篇netty的分析文章,主要还是一些源码解析的文章,一方面有输出会促使自己在看源码,学习原 ...
- ./configure & make & make install 知其所以然
最近一直在类unix系统上(Ubuntu和Mac OS)上调研第三方的一些开源库,要涉及到开源库的编译安装工作,接触最多的就是./configure & make & make ins ...
- maven 学习---Maven中央存储库
当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载. 首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源, 如果没有找到,然后把它会 ...
- TinyXML2 使用
TinyXML2 TinyXML2 TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译,使用TinyXML进行C++ XML解析,使用简单,容易上手. ...
- windows开启PostgreSQL数据库远程访问
1.在PostgreSQL安装目录下data文件夹,打开pg_hba.conf文件,新增允许访问的ip 2.打开postgresql.conf,将listen_addresses = 'localho ...
- 01、Linux基础命令
linux 一些主要目录的认识: /bin 二进制可执行命令 /boot 存放系统引导文件,如 内核.grub 等 /dev 设备文件 /etc 系统配置目录 /home 普通用户家目录 /lib 系 ...