完成此次目的,分为两个步骤,一个是菜单的自定义,一个是生成的dll的自动加载。
参考文章:http://blog.sina.com.cn/s/blog_69e8fdf00100m337.html
基本上是复制了下卡卡尼莫的代码,搞定了菜单和加载的问题。
总结下:
此解决方案分两步:
1、菜单的自定义:是通过COM的方式引入AcadApplication,从而调用菜单的相关功能。使用此类的时候,需要通过 添加引用->com->AutoCAD 2010(或其它版本) Type Library 的方式引入Autodesk.AutoCAD.Interop这样一个命名空间。
2、dll的自动加载:通过注册表写入的方式,来使cad在启动的时候,进行dll加载的。
另外,在这个过程中也看到了其它的几种方案:
1、菜单部分:也可以使用cui的方式来进行添加。开始看了 http://www.objectarx.net/forum.php?mod=viewthread&tid=4990 这里,只看到生成cui文件,没看到怎么加载的,后来放弃了这种方式后,又看到http://www.objectarx.net/forum.php?mod=viewthread&tid=5000 这里,基本上也是可以搞定的,不过比起com的方式似乎麻烦了很多,但是可定制性就大了许多。同时在2010中cui文件的后缀为 .cuix,这一点要注意,要不然在 “从AUTOCAD系统变量MENUNAME得到main.cui文件”这一步的时候,就会出错了,因为实际的文件时main.cuix.
2.dll的自动加载部分也可以使用修改.lsp文件的方式去做,不过我试了试发现没法自动启动,似乎杀毒软件(如360)会认为是病毒,所以,最后还是采用了注册表的方式。