MickZ 发表于 2016-10-22 12:59:06

GetInterfaceObject("VL.Application.16")方法问题

Dim VL As Object
    Dim acadApp As AcadApplication
    Dim acadDoc As AcadDocument
    Set acadApp = GetObject(, "AutoCAD.Application")
    Set acadDoc = acadApp.ActiveDocument
    Set VL = acadDoc.Application.GetInterfaceObject("VL.Application.16")
此段VB代码在AutoCad07环境下可以得到VL对象,在AutoCAD09环境下取不到VL对象。
但是在AutoCAD09环境下搜索注册表也能查到值"VL.Application.16",此问题如何解决?
如问题解决,愿意付出50元酬劳,谢谢!

zzyong00 发表于 2016-10-23 22:06:13

Dim AcadVersion As Integer
    With ThisDrawing.Application
      AcadVersion = Val(Left(.Version, 2))
      '根据AutoCAD的版本判断使用的VL库类型
      Select Case AcadVersion
      Case Is = 15
            Set VL = .GetInterfaceObject("VL.Application.1")
      Case Is >= 16
            Set VL = .GetInterfaceObject("VL.Application.16")
      End Select
    End With
   

zzyong00 发表于 2016-10-23 22:15:27

有可能 是你的09安装有问题吧

MickZ 发表于 2016-10-24 09:13:31

zzyong00 发表于 2016-10-23 22:15
有可能 是你的09安装有问题吧

09安的应该是没问题的,在xp系统下安的,用vb调cad别的接口都可以调起来的.....

MickZ 发表于 2016-10-24 09:14:47

zzyong00 发表于 2016-10-23 22:06


试过这段代码,一样取不到对象....

zzyong00 发表于 2016-10-24 21:37:46

实际上vl非常鸡肋,仅限于玩

MickZ 发表于 2016-10-25 09:04:28

zzyong00 发表于 2016-10-24 21:37
实际上vl非常鸡肋,仅限于玩

需要获取vl对象,后面要用....

雪山飞狐_lzh 发表于 2016-10-25 09:34:20

既然你都2009了 用netapi不是更好

MickZ 发表于 2016-10-27 18:13:18

顶一下,来个大神啊
页: [1]
查看完整版本: GetInterfaceObject("VL.Application.16")方法问题