lwd899 发表于 2011-1-31 11:48:43

在autocad07可以运行,autocad04、06不可以运行,是怎么回事?

本帖最后由 lwd899 于 2011-1-31 11:51 编辑

关于在autocad2007可以运行,autocad2006不可以运行的二次开发编程问题
我用vb.net 采用activex技术做autocad二次开发,遇到如下问题,
编程环境,visual studio2008,autocad 2007,
打包完之后的安装运行环境,autocad 2006,
运行结果:没有任何反应,无法启动autocad,程序一直卡着。
附注:程序在autocad2007的环境下运行没有问题。
请问大家,这是什么情况?
'编程时引用情况如下:
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Interop.Common
'连接CAD并打开dwt模板(dwt模板改为06的也不行)
    Public Sub GetCadwithdwtfrw(ByVal opendwt As Boolean, ByVal dwtpath As String)
      Try
            AcadApp = GetObject("autocad.application")
      Catch ex As Exception
            Try
                AcadApp = CreateObject("autocad.application")
            Catch ex1 As Exception
                MsgBox("无法打开AutoCAD")
                Exit Sub
            End Try
      End Try
      AcadApp.Visible = True
      AppActivate(AcadApp.Caption)
      AcadApp.Documents.Close()   '关闭cad文档
      AcadApp.Documents.Add(dwtpath)'打开dwt模板
      ThisDrawing = AcadApp.ActiveDocument
    End Sub

chmenf087 发表于 2011-1-31 13:56:13

恐怕楼主要失望了,net是在04版之后才支持的,然而06版的net和08,09的dll是有诸多不同的,net又是前期绑定除非你用06的库编译否则是不能运行的,而且没在06版下面编译过net我也不知道06版有没有intorp接口,但是04版是绝对没有办法运行net程序集的

lwd899 发表于 2011-1-31 15:37:08

谢谢chmenf087,先给你拜个年!
照你的意思,用vb6是不是就不存在这类问题?如果用vb.net2008采用activex(com)方法来开发cad的话,最低也只能用06版了?假如引用06版的dll,那么后面的新版本是一定可以用了?

chmenf087 发表于 2011-1-31 16:07:11

谢谢你!第一个问题答案是肯定的,甚至你都不需要引用cad的库,第二个问题不知道要看04的库应该是可以的吧,第三个答案是否定的因为有可能desk公司重写了某些函数,或者更改了某些方法导致netapi有些变化吧,但是intorop命名空间是没有几个变化的方法的应该可以通用。

lwd899 发表于 2011-1-31 17:35:04

我刚才分别装了04版和06版试了,04版根本就运行不成,06版在引用了autocad2006的类型库之后可以绘图了,但是效果还是没有2007好。看来确实是cad类型库的版本问题,基于vb2008使用activex技术开发cad还是有些不便。

页: [1]
查看完整版本: 在autocad07可以运行,autocad04、06不可以运行,是怎么回事?