我有一个VB6程序,它调用一个VB6 DLL,然后调用另一个VB6 DLL。当我执行调用程序时,有一个应用程序错误,我无法确定,所以我研究了如何在dll中“看到”错误。
我读了堆栈溢出条目关于调试VB6 dll的问题
按照Booji to我也按照他的指示,从他的参考列表中删除了两个DLL。调用程序以一个.txt文件作为输入。当我执行exe时,我收到了以下错误:
错误号:13描述:类型错配
错误不是由应用程序生成的。
这是什么意思?如何调试此问题?
发布于 2011-11-01 21:36:23
您必须拥有EXE和两个DLL的所有源代码。将所有项目添加到单个组文件中,即VBG。必须在EXE项目中引用第一个DLL。我不知道为什么有人告诉你要把它们移走。必须在第一个DLL项目中引用第二个DLL项目。VB很聪明,可以悄悄地将DLL引用替换为项目引用。如果从项目组中删除DLL项目,则还可以悄悄地将项目引用替换为DLL引用。
确保将错误处理设置为“在所有错误上中断”或“在类中中断”。
类型不匹配错误可能发生在简单的事情上,例如将非数字字符串赋值给数值变量。如果要传递对象引用,则会变得更加复杂。如果您看到这样的错误发生在以下情况:
Set myObject = someOtherObject
..。看起来它们应该是相同的类型,这可能会变得非常复杂。但首先,我将让您进行调试。
发布于 2018-04-21 19:56:31
您可以使用在VisualBasic6.0中生成的开源项目。它被称为"德巴基v2".This项目,它具有多个角色:
-debugger -disassembler -Windows资源提取器-file十六进制编辑器-window sniffer -API间谍
都变成一团了。我可能对你所需要的有用。
发布于 2018-05-10 19:44:38
在VBG中开始工作时,如果库引用不一致,可能会出现类型不匹配。一个库可以在VBG中引用另一个库;另一个库可以引用已编译的版本。在它们之间传递对象会导致此错误。
具体例子:
C应该在VBG中引用B。
https://stackoverflow.com/questions/7972846
复制相似问题