许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  C#二次开发CAD解决CAD一直需要重新启动的问题

C#二次开发CAD解决CAD一直需要重新启动的问题

阅读数 2
点赞 0
article_banner

//直接要调用的dll

using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.EditorInput;using Autodesk.AutoCAD.Runtime;using Autodesk.AutoCAD.DatabaseServices;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.IO;using System.Reflection; //用到了System,System.IO,System.Reflectionnamespace LoadX{    public class LoadX    {        private Action cmd;        [CommandMethod("DD")]        public void ReloadX()        {            string dllName = "CadBasic.dll";//生成的需要调用的文件名            string className = "CadBasic.cmd";//空间名.类名            string methodName = "CmdSum";//method名             var adapterFileInfo = new FileInfo(Assembly.GetExecutingAssembly().Location);            var targetFilePath = Path.Combine(adapterFileInfo.DirectoryName,dllName);            var targetAssembly = Assembly.Load(File.ReadAllBytes(targetFilePath));            var targetType = targetAssembly.GetType(className);            var targetMethod = targetType.GetMethod(methodName);            var targetObject = Activator.CreateInstance(targetType);            cmd = () => targetMethod.Invoke(targetObject,null);            try            {                cmd?.Invoke();            }            catch (System.Exception ex)            {                System.Windows.Forms.MessageBox.Show(ex.Message,"Tips");            }        }            }    public class CmdInfo    {         public string DllName { get; set; }        public string ClassName { get; set; }        public string MethodName { get; set; }    }}

//功能的dll

using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.EditorInput;using Autodesk.AutoCAD.Runtime;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace CadBasic{     public class cmd    {        [CommandMethod("CmdHello")]        public void CmdHello()        {            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;            ed.WriteMessage("Hello World From VS C#");            System.Windows.Forms.MessageBox.Show("Hello World From VS C#(It's for Debugging)", "Info(Tips)");        }        [CommandMethod("CmdSum")]        public void CmdSum()        {            int sum = 0;            int max = 200;            for (int i = 1; i <= max; i++)            {                sum += i;            }            double divisor = 13;            double divide = sum / divisor;            System.Windows.Forms.MessageBox.Show(sum.ToString() + "\n" + divide, "Info(Tips)");         }    }}


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空