Lupo76 发表于 2017-1-26 14:05:02

Vb6并设置acadApp=GetObject(,“AutoCAD.Application”)

**** Hidden Message *****

Roy_043 发表于 2017-1-27 09:18:30

你可以用它来代替吗?:
Set acadApp = ThisDrawing.Application

57gmc 发表于 2017-1-27 10:11:09

可能acad cad在未安装vba的情况下响应COM调用。我还没试过。但您可能仍然需要更新版本的VB。

Lupo76 发表于 2017-1-27 10:23:47

由于您运行独立的EXE来自动将AutoCAD作为进程外实例,因此您的应用程序是32位EXE应用程序,而AutoCAD (2016)是64位应用程序,这应该没有关系。但是,您展示的代码按原样用于VB6应用程序,仅当AutoCAD(或BricsCAD)已经在同一台计算机上运行(即必须存在AcadApplication实例的运行实例)时才有效。否则,您的代码将在这一行引发异常。Visible = True
并使您的EXE应用程序崩溃。

57gmc 发表于 2017-1-27 10:37:46

我在第一条消息中输入的代码是正确的。
我在其他电脑上进行了一些测试,结果正常。
但是,如果在PC中安装了AutoCAD和BricsCAD,则代码请求必须指定AutoCAD版本。例如Set acadApp = GetObject(, "AutoCAD.Application.20.1")

PS。没有必要安装VBA!

n.yuan 发表于 2017-1-27 10:38:42

尝试:以管理员身份运行

Lupo76 发表于 2017-1-27 12:46:54

大家好,
这些链接最终帮助我解决了这个问题。确保设置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]
查看完整版本: Vb6并设置acadApp=GetObject(,“AutoCAD.Application”)