明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 935|回复: 4

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

[复制链接]
发表于 2015-2-15 16:00:06 | 显示全部楼层 |阅读模式
在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: (
发表于 2015-2-24 06:30:40 | 显示全部楼层
把过程名称line改名
Sub line()...............
把类模块形参document改名
Public Function shanghai(ByVal doccument As AcadDocument...................
发表于 2015-2-25 19:52:52 | 显示全部楼层
ByVal 使用不当,用byref
 楼主| 发表于 2015-2-26 09:07:39 | 显示全部楼层
zzyong00 发表于 2015-2-25 19:52
ByVal 使用不当,用byref

谢谢老大的指点,我刚刚试了下 改为byref 还是报相同的错误
发表于 2015-2-26 18:54:07 | 显示全部楼层
建议都用vb6来调试,这样就可以进入activex工程里进行调试了,不会不知道是哪行出错了
用vba,dll只能先编译,如果dll里有错,很难找出来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 12:47 , Processed in 0.157078 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表