ngeqt521 发表于 2007-3-5 18:26:00

实时错误13,类型不匹配”的错误,问解决办法

我制作了一个程序,调用CAD2007运行正常,调用CAD2004时运行却出现“实时错误13,类型不匹配”的错误,问原因和解决方法
调试时提示修改代码如下红色部分所示:
Option Explicit
'Dim DotCAD As AcadApplication
Dim acadApp As Object
Dim acadDoc As Object

Private Declare Function SetWindowPos& Lib "user32" (ByVal hwnd As Long, _
    ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _
    ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Sub Check1_Click()' 窗口置前
Dim myval
myval = SetWindowPos(dot3.hwnd, -1, 0, 0, 0, 0, 3)
End Sub
(略去一段声明)
' 创建圆
Dim circleObj() As AcadCircle
ReDim circleObj(n) As AcadCircle
Dim center(0 To 2) As Double
Dim retObj() As Variant
ReDim retObj(n) As Variant
Dim m
Dim columns
Ad = (An - A0) / n
Dim i
For i = 0 To n
If i Mod 2 = 0 Then
center(0) = returnpnt(0)
Else
center(0) = returnpnt(0) + (A0 + i * Ad) / 2
End If
center(1) = returnpnt(1) - (B0 * i + i * (i - 1) * Bd / 2)
center(2) = returnpnt(2)

Set circleObj(i) = acadApp.ActiveDocument.ModelSpace.AddCircle(center, 0.5 * D0 + i * Rd)
Private Sub Form_Load()
On Error Resume Next
Set acadApp = GetObject(, ".Application")
If Err Then
Err.Clear
Set acadApp = CreateObject("AutoCAD.Application")
If Err Then End
End If
acadApp.Visible = True
Set acadDoc = acadApp.ActiveDocument

jkbanana 发表于 2007-3-6 12:36:00

不会是在执行 Set circleObj(i) = acadApp.ActiveDocument.ModelSpace.AddCircle(center, 0.5 * D0 + i * Rd) 语句之前, acadApp 还没有被赋与有效的值吧.

jkbanana 发表于 2007-3-7 09:13:00

2004版,好像是要把
GetObject("AutoCAD.Application")
CreateObject ("AutoCAD.Application")
改为
GetObject("AutoCAD.Application.16")
CreateObject ("AutoCAD.Application.16")
页: [1]
查看完整版本: 实时错误13,类型不匹配”的错误,问解决办法