在二次开发过程中,关于“无法创建ActiveX组件”错误的一点见解

   在用.net进行AutoCAD、SolidWorks、SolidEdge等的二次开发过程中,通过程序连接这些设计软件时可能会出现如下错误:“无法创建ActiveX组件”。至于出现此错误的原因,还有待于进一步研究(也希望前辈能指点一二)。

   解决方法:还没有从根本上解决此问题的方法

  1、通过进程启动法

        a)通过进程启动模板法

            大家都知道,打开模板时必定会同时打开此应用程序,所以,先找到应用程序的安装目录,找到Template子文件夹,里面一般会有一个Normal模板,通过程序打开此模板即可打开此应用程序。

  程序如下:

If Err.Number Then
            Err.Clear()
            Try
                '定义一个进程
                Dim cadprocess As New Process
                '进程启动模板
                cadprocess.Start("D:/Program Files/AutoCAD 2006/Temlate/acadiso.dwt")

                '创建应用程序进程
                'cadApp = CreateObject("AutoCAD.AcadApplication")
            Catch ex As Exception
                If Err.Number Then
                    MsgBox("不能启动AutoCAD,请检查是否安装!或文件路径是否正确!")
                End If
            End Try
        End If

                (从朋友拜秋哪里获悉,感谢之。。。)

           b)通过进程打开可执行文件

                找到安装目录下,查看.exe可执行文件。记录下此目录,运行下面的程序即可。

  If Err.Number Then
            Err.Clear()
            Try
                '定义一个进程
                Dim cadprocess As New Process
                '进程启动可执行文件

                cadprocess.Start("D:/Program Files/AutoCAD 2006/acad.exe")

                '创建应用程序进程
                'cadApp = CreateObject("AutoCAD.AcadApplication")
            Catch ex As Exception
                If Err.Number Then
                    MsgBox("不能启动AutoCAD,请检查是否安装!或文件路径是否正确!")
                End If
            End Try
        End If
2、正常启动应用软件的方法

 Dim cadApp As AcadApplication

        '获得应用程序进程
        cadApp = GetObject(, "AutoCAD.AcadApplication")

        If Err.Number Then
            Err.Clear()
            Try
                '定义一个进程
                Dim cadprocess As New Process
                '进程启动可执行文件
                'cadprocess.Start("D:/Program Files/AutoCAD 2006/acad.exe")

                '创建应用程序进程
                cadApp = CreateObject("AutoCAD.AcadApplication")
            Catch ex As Exception
                If Err.Number Then
                    MsgBox("不能启动AutoCAD,请检查是否安装!或文件路径是否正确!")
                End If
            End Try
            '软件可见
            cadApp.Visible = True
            '软件成最大化状态
            cadApp.WindowState = Common.AcWindowState.acMax
            '显示软件界面
            AppActivate(cadApp.Caption)
        End If

但此方法会出现“无法创建ActiveX组件”错误,有人提示说是防火墙和杀毒软件作怪,我试过,未果。有何良策请与我联系。qq:35894842

至于solidworks、solidedge等软件,方法类似。

当然连接应用软件之前,必须先引用其Com组件,如AutoCAD的二次开发中,需要引用AutoCAD 200x Type Library和AutoCAD ObjectDBX Common 16.0 Type Library。并在程序的开头“imports AutoCAD” (VB.net)或者“Using AutoCAD”(C#.net)

 2006-5-31添加:在AutoCad二次开发中出现“无法创建ActiveX组件”错误的原因在于GetObject方法参数不正确的原因,而直接用Create("AutoCAD.Application")(在AutoCad2000中)则可以创建并打开CAD,GetObject方法中的类名参数该如何选取,还正在进一步研究之中。。。

 

 


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值