前段时间,学习AutoCAD的.NET开发的时候,发现了一个牛人的Blog,网址是:http://through-the-interface.typepad.com/through_the_interface/,不过,是英文的,所以,我想把他的内容翻译成中文,放到我的Blog中,为避免别人说我拾人牙慧,我也会在他的基础上作一些实验,发表一些看法,请大家指正!在下英语水平不高,若有错误,请大家原谅!另,在下上网不是很方便,可能更新不是很快,请大家原谅!本人的知识深度和广度也有不足,因此,对他的Blog里面的我不明白的地方,我会用括号标出,红体字,请各位看客中有明白的,指点在下!谢谢!下面开始
.NET和AutoCAD
AutoCAD2004
中首先定义了.NET API
的原型。在当时,这是具有革命性的。创建混合模式(什么叫混合模式?)的
DLL
来暴露托管接口,并可通过非托管的
ObjectARX
调用来配置
(marshal,这在后面的Blog中可以看到,实际上是托管库和非托管库间相互调用要涉及到的方法)
这些接口
。
.NET最起初只是为VB客户程序通过COM来开发提供了便利。可以工程中使用COM和.NET组件,但要用更进化的编程语言(如,VB.NET在本质上已经比VB6来进化很多了)来产生简单的客户代码。
.对Autodesk,.NET的一个关键的益处是可把更复杂的数据类型(如ObjectARX中定义的类型)映射到一个托管的API中。而当设计一个COM API时,会受到限制--能基于IDispatch来使用某种基本的类型,但为复杂的C++类来暴露COM自动接口,难度是很大的。在.NET中就不一样了...ObjectARX设计的一致性为我们提供了在很大的程度上进行映射的能力,这会在我们内部API定义数据库中半自动地产生代码(何解?)