Vb6并设置acadApp=GetObject(,“AutoCAD.Application”)
**** Hidden Message ***** 你可以用它来代替吗?:Set acadApp = ThisDrawing.Application
可能acad cad在未安装vba的情况下响应COM调用。我还没试过。但您可能仍然需要更新版本的VB。 由于您运行独立的EXE来自动将AutoCAD作为进程外实例,因此您的应用程序是32位EXE应用程序,而AutoCAD (2016)是64位应用程序,这应该没有关系。但是,您展示的代码按原样用于VB6应用程序,仅当AutoCAD(或BricsCAD)已经在同一台计算机上运行(即必须存在AcadApplication实例的运行实例)时才有效。否则,您的代码将在这一行引发异常。Visible = True
并使您的EXE应用程序崩溃。 我在第一条消息中输入的代码是正确的。
我在其他电脑上进行了一些测试,结果正常。
但是,如果在PC中安装了AutoCAD和BricsCAD,则代码请求必须指定AutoCAD版本。例如Set acadApp = GetObject(, "AutoCAD.Application.20.1")
PS。没有必要安装VBA! 尝试:以管理员身份运行 大家好,
这些链接最终帮助我解决了这个问题。确保设置CLSID和AutoCAD.NET应用程序。21(编号)到相应的AutoCAD版本(此版本适用于AutoCAD 2017)。在注册表中查找它。它甚至可以在Windows 10上与visual basic 5和64位AutoCAD 2017配合使用。
https://stackoverflow.com/questions/40656440/vb6-program-interacting-with-autocad-is-not-longer-able-to-create-or-bind-to-t
这是一个很好的例子https://stackoverflow.com/questions/9125424/late-binding-run-time-error-in-vb6-when-creating-an-object-from-a-net-assembly
Windows Registry Editor Version 5.00
@="AutoCAD Application 21"
@="{0D327DA6-B4DF-4842-B833-2CFF84F0948F}"
@="AutoCAD Application"
@="{0D327DA6-B4DF-4842-B833-2CFF84F0948F}"
@="AutoCAD.Application.21"
@="{0D327DA6-B4DF-4842-B833-2CFF84F0948F}"
@="AutoCAD Application"
@="{0D327DA6-B4DF-4842-B833-2CFF84F0948F}"
@="AutoCAD.Application.21"
页:
[1]