我目前正在创建一个需要打开autocad的Windows窗体应用程序。我已经为Autocad 2014做了。我们有什么方法可以完成这个任务,不仅适用于单个版本,还适用于任何版本。除此之外我已经创建了DLL 对于2014年工作正常。通过改变引用acmgd.dll和acdbmgd.dll我得到了它也在2007年工作。除此之外还有任何方法在所有版本中创建一个dll orking.Thanks提前。
答案 0 :(得分:0)
可能实现此目的的一种方法是找出与Autocad文件关联的程序。这可以通过调用找到 FindExecutable传入带有autocad文件扩展名的文件名。
使用可执行文件后,您可以使用Process.Start
启动它导入如下:
[DllImport("shell32.dll", EntryPoint = "FindExecutable")]
private static extern long FindExecutable(string lpFile, string lpDirectory, StringBuilder lpResult);
答案 1 :(得分:0)
关于你的第一个问题,这里有一些建议:
如果选择#1,最好的方法是通过后期绑定,因此您的应用程序没有任何引用(不要使用AcMgd,AcDbMgd或AcCoreMgd,只使用Autodesk.AutoCAD.Interop库)。对于#2,您将需要所有三个引用(因为控制台自2013版以来可用)。对于#3,您只需要调用Web服务,因此根本不需要Autodesk引用(最干净)。
对于第二个问题,您需要至少两次编译应用程序:适用于AutoCAD 2012及更早版本,以及AutoCAD 2013及更新版本。第一个是AcMgd和AcDbMgd,第二个只是添加AcCoreMgd。