dll - 从 VB6 exe 调试 VB6 dll

标签 dll vb6

我有一个 VB6 程序,它调用一个 VB6 DLL,后者又调用另一个 VB6 DLL。当我执行调用程序时,出现了一个我无法确定的应用程序错误,因此我研究了如何“看到”dll 中的错误。

我阅读了 Stackoverflow 条目 question about debugging VB6 dll

并按照 Booji Boy 的指示创建了一个 vbg。我还按照他的指示从他的引用列表中删除了两个 DLL。调用程序将 .txt 文件作为输入。当我执行 exe 时,我收到此错误:

错误编号:13 说明:类型不匹配

该错误不是由应用程序生成的。

这是什么意思?我该如何调试这个问题?

最佳答案

您必须拥有 EXE 和两个 DLL 的所有源代码。您将所有项目添加到单个组文件中,即 VBG。您必须在 EXE 项目中引用第一个 DLL。我不知道为什么有人告诉你必须删除它们。您必须在第一个 DLL 项目中引用第二个 DLL 项目。 VB 足够聪明,可以悄悄地用项目引用替换 DLL 引用。如果您从项目组中删除一个 DLL 项目,那么将项目引用替换为 DLL 引用也很聪明。

确保您将错误处理设置为“Break on All Errors”或“Break in Class”。

类型不匹配错误可能来自简单的事情,例如将非数字字符串分配给数字变量。如果您正在传递对象引用,它会变得更加复杂。如果您看到此错误发生在以下情况:
Set myObject = someOtherObject
...看起来它们应该是相同的类型,这可能会变得非常复杂。但首先,我会让你进行调试。

关于dll - 从 VB6 exe 调试 VB6 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7972846/

相关文章:

c# - 将 C# DLL 合并到 .EXE

c# - 在不同 dll 的接口(interface)上调用带有 ImmutableArray<> 的方法时抛出 System.MissingMethodException

com - Windows XP SP3上的错误0x800706F7 "The stub received bad data"

vb6 - 如何使用VB6获取目录中所有文件名的列表?

mysql - 帮我解决这个sql语句

c++ - Visual Studio DLL 依赖项导致不必要的重新链接

matlab - 在matlab代码中使用dll文件

java - C# 调用 Java 代码加载非托管 dll

vb6 - 通过重新启动管理器关闭时 VB6 应用程序锁定

vba - 如何使用vba设置颜色数组?