标题:
[基础]
如何调试 ActiveX DLL ?
[打印本页]
作者:
wshzw
时间:
2008-7-27 13:02
标题:
如何调试 ActiveX DLL ?
一般用“逐语句”运行调试代码时,当前执行 行 会有黄色的背景色,可以逐行检查问题所在。如图:
逐步运行.jpg
(3.95 KB)
2008-7-27 13:02
但在调试 ActiveX DLL 的代码时,却没有当前执行行的黄色背景色,不知道当前执行到哪一行,怎么检查问题出现在哪一行?
请教各位,谢谢!
[
本帖最后由 wshzw 于 2008-7-27 13:09 编辑
]
图片附件:
逐步运行.jpg
(2008-7-27 13:02, 3.95 KB) / 该附件被下载次数 471
http://bbs.lihuasoft.net/attachment.php?aid=1552
作者:
Nothing
时间:
2008-7-28 09:26
Activex DLL不能这样调试,因为必需别的程序调用的时候才执行。
你可以在启始的语句设置断点,当别的程序调用时,VB会在断点处停下来,这时你可以按F8一句一句的执行。
作者:
wshzw
时间:
2008-7-28 16:53
谢谢回复!
但是比如用 Excel 作为 Test.dll 的宿主程序,如果 Test.dll 尚未被编译,还不能应用于 Excel,如果 Test.dll 已被编译,只能在 Excel 的代码中设置断点,看不到 *.dll 中有病的语句……
我对 VB 太不了解,还不能明白如何调试 *.dll 中的病句,应该是在*.dll中调试,还是在宿主程序中调试?
我还纳闷着:在宿主程序中无法调试到 *.dll 内部的代码…在编写 *.dll 时又不能调试…?
请再指点,谢谢!
作者:
wshzw
时间:
2008-7-28 17:12
以附件中的 Test.xls 调用 Test.dll 为例,如何能检查出下面第五行的代码有问题?
Test.rar
(13.11 KB)
Test.rar
(13.11 KB)
下载次数: 460
2008-7-28 17:12
Sub WriteMe()
With mxlApp
.ActiveCell = .ActiveWorkbook.Name
.ActiveCell(2) = .ActiveSheet.Name
' .Sheets(5).Cells(1, 1) = "不存在" '因工作簿中只有3页,所以当前行的代码有问题
End With
MsgBox "假如 *.DLL 中的当前行有问题,调试成了难题……"
End Sub
附件:
Test.rar
(2008-7-28 17:12, 13.11 KB) / 该附件被下载次数 460
http://bbs.lihuasoft.net/attachment.php?aid=1553
作者:
Nothing
时间:
2008-7-29 16:03
DLL调试是一个难题,你可以用VB的调试器调试,如果想用Excel调试,当然没戏。
作者:
wshzw
时间:
2008-7-29 18:12
谢谢!原来 DLL 本来就不易调试。
请问“VB的调试器”是 VB 自带的呢,还是另外的一个软件?
作者:
Nothing
时间:
2008-7-29 22:35
VB本身自带的,你直接运行DLL,会出一个调试选择的对话框,你仔细看看就知道了。
作者:
wshzw
时间:
2008-7-31 13:11
谢谢回复!
我在DLL尚未编译的情况下,按[F5]或[F8]键运行DLL,都没出现调试选择的对话框,那是因为我操作得疏漏或是VB尚未成为我的朋友……
我是否可以先将工程类型由DLL改为EXE,调试完成后再将工程类型改回来?
作者:
Nothing
时间:
2008-7-31 23:14
当然可以
还可以建一个工程组,里面包括DLL工程和一个测试的程序
欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/)
Powered by Discuz! 6.0.0