CAD二次开发高版本调用内部命令AcedCmdS和AcedCmdC

   //调用AutoCAD命令,ARX原型:int acedCmdS(const struct resbuf * rbp);
        [DllImport("accore.dll", EntryPoint = "acedCmdS", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
        private extern static int acedCmdS(IntPtr rbp);
        /// 
        /// 调用C++的acedCmdS函数
        /// 
        /// 无意义,只是为了定义扩展函数
        /// 命令参数列表
        /// 返回命令执行的状态
        public static int AcedCmdS(this Editor ed, ResultBuffer args)
        {
            //由于acedCmd只能在程序环境下运行,因此需调用此语句
            if (!Application.DocumentManager.IsApplicationContext)
                return acedCmdS(args.UnmanagedObject);
            else
                return 0;
        }

由于cad2016里AcedCmd改成了AcedCmdS,Accore.dll也是2013版本后才开始改的。
所以按照书上的代码运行就不会有效果。

你可能感兴趣的:(.NET,C#,CAD二次开发,CAD二次开发,调用内部命令,Acedcmds)