xueliang123 发表于 2015-2-15 16:00:06

求救:封装为DLL,再用AUTOCAD VBA调用报错少个半个括号

在vb6.0 里的代码为如下:

Public Function shanghai (ByVal doccument As AcadDocument, ByVal ptSt As Variant, ByVal ptEn As Variant) As AcadLine


Set shanghai = Document.ModelSpace.AddLine(ptSt, ptEn)

End Function

生成dll后(工程名为STX1,类模块名为SUZHOU1)

在autocadvba中的代码为:

Public shimadongxi As New STX1.SUZHOU1

Sub line()

Dim pt1(0 To 2) As Double
Dim pt2(0 To 2) As Double

Dim objline As AcadLine

pt1(0) = 10
pt1(1) = 10
pt1(2) = 0

pt2(0) = 150
pt2(1) = 100
pt2(2) = 0


Set objline = shimadongxi.shanghai(ThisDrawing, pt1, pt2)

End Sub

报错如下:compile error Expected: (

wxgmwtech 发表于 2015-2-24 06:30:40

把过程名称line改名
Sub line()...............
把类模块形参document改名
Public Function shanghai(ByVal doccument As AcadDocument...................

zzyong00 发表于 2015-2-25 19:52:52

ByVal 使用不当,用byref

xueliang123 发表于 2015-2-26 09:07:39

zzyong00 发表于 2015-2-25 19:52 static/image/common/back.gif
ByVal 使用不当,用byref

谢谢老大的指点,我刚刚试了下 改为byref 还是报相同的错误

zzyong00 发表于 2015-2-26 18:54:07

建议都用vb6来调试,这样就可以进入activex工程里进行调试了,不会不知道是哪行出错了
用vba,dll只能先编译,如果dll里有错,很难找出来
页: [1]
查看完整版本: 求救:封装为DLL,再用AUTOCAD VBA调用报错少个半个括号