利用C#进行AutoCAD的二次开发(二)
C#才鸟
大家好,今天我继续给各位介绍利用C#进行AutoCAD的二次开发。在这一讲中,主要介绍上一讲例子中存在的问题。
在上一次的例子中我是通过引用AutoCAD 2004 Type Library来进行C#与AutoCAD之间的通信,但这种方法存在两个致命的缺点。第一个缺点是每次调试程序的时候C#都要重新启动AutoCAD,如果调试的次数非常多(比如跟踪错误然后调试),那么编程的效率就很低,因为启动一次CAD还是需要较长的时间。相对于第一个缺点,第二个缺点则更要命。由于.NET本身的问题,Interop.AutoCAD.dll文件(就是通过它才实现了C#与AutoCAD之间的通信)存在着一些bug,因此虽然有时你的代码是完全正确的,但C#编译器还是抛出莫名其妙的错误。那不是完蛋了吗?我曾经有一阶段就因为这两个要命的东东差一点放弃了C#而想改学ObjectArx了,呵呵,不过还是运气好,我偶尔一次在网上看了一篇外国人写的文章,他专门介绍了这两个问题的解决办法。下面就来解决这两个问题。
首先来看第二个难题,按以下步骤来进行:
1. 随便用Visual Studio .NET建立一个C#应用程序,然后按照上一篇文章中的设置加入AutoCAD 2004 Type Library,然后不加入任何代码,编译你的程序。
2. 在Visual Studio .NET命令行工具下用ildasm.exe(这个工具可以在Visual Studio .NET安装光盘中找到)把Inter

本文详细介绍了如何利用C#进行AutoCAD的二次开发,着重解决了通过引用AutoCAD 2004 Type Library进行通信时出现的两个主要问题:1)每次调试需重启AutoCAD导致效率低下;2)Interop.AutoCAD.dll存在的bug导致编译错误。通过编译和修改中间语言文件,以及使用GetObject函数获取活动AutoCAD对象,成功解决上述问题。
&spm=1001.2101.3001.5002&articleId=21911&d=1&t=3&u=1c9fa8ccd7ac440ba1b1503d56df7a1a)
1万+

被折叠的 条评论
为什么被折叠?



