liukang2655 发表于 2011-4-19 11:23:23

关于在vs中开发基于ActiveX对象模型的开发疑惑

本帖最后由 liukang2655 于 2011-4-19 11:47 编辑

我在VS2005中可以进行基于com的二次开发吗?引用过2007对象库后怎么还会提示AutoCad.AcadApplication为未知类型。
例如: Dim AcadApp As AutoCAD.AcadApplication
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Call 连接AutoCAD()
    End Sub
    Sub 连接AutoCAD()
      On Error Resume Next
      AcadApp = GetObject(, "Autodesk.AcadApplication")
      If Err.Number Then
            Err.Clear()
            AcadApp = CreateObject("Autodesk.AcadApplication")
            If Err.Number Then
                MsgBox(Err.Number)
                Exit Sub
            End If
      End If
      AcadApp.Visible = True '界面可视
      AppActivate(AcadApp.Caption) '显示AutoCAD界面
    End Sub
End Class
错误 1 未定义类型“AutoCAD.AcadApplication”。

chmenf087 发表于 2011-4-19 16:11:26

你需要引用com组件,在类前面添加imports引用activex的类库

liukang2655 发表于 2011-4-19 16:23:18

回复 chmenf087 的帖子

我在【项目】-【添加引用】-【COM】里引用了autocad type 2007 library。 还不行?还需要添加代码?

chmenf087 发表于 2011-4-19 18:47:06

本帖最后由 chmenf087 于 2011-4-19 18:51 编辑

Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Interop.Common
引用这两个类库
就可以看见com对象和提示了
可以直接定义
   Dim acadApp As AcadApplication
   Dim acadDoc As AcadDocument
用acadDoc来代替thisdrawing

liukang2655 发表于 2011-4-19 21:10:11

回复 chmenf087 的帖子

那为何我点击按钮后会提示如下图的错误呢?谢谢请帮忙

chmenf087 发表于 2011-4-19 21:18:15

回复 liukang2655 的帖子

不知道你的具体情况不好说
页: [1]
查看完整版本: 关于在vs中开发基于ActiveX对象模型的开发疑惑