Testing 从Dev计算机运行与安装VB6应用程序时,是什么导致VB6应用程序测试结果的差异?

Testing 从Dev计算机运行与安装VB6应用程序时,是什么导致VB6应用程序测试结果的差异?,testing,vb6,system-dependent,Testing,Vb6,System Dependent,我是VB6新手,但我目前负责维护一个可怕的编辑器式工具,它包含大量的表单、类、模块和第三方工具,所有这些都像德州电锯大屠杀中那个家伙的皮肤一样拼凑在一起 我不明白的是,为什么我在调试模式下运行应用程序时会得到不同的结果,而我编译并在我的开发pc上运行应用程序时会得到不同的结果,而我在另一台pc上安装应用程序时会得到不同的结果 是的,我知道我很笨,所以请告诉我在哪里可以找到更多关于这个的信息。我希望找到一些像不同的链接,注册表相关的连接等我现在根本没有得到的东西,即像蜡上,蜡下:P 最让我头疼的是

我是VB6新手,但我目前负责维护一个可怕的编辑器式工具,它包含大量的表单、类、模块和第三方工具,所有这些都像德州电锯大屠杀中那个家伙的皮肤一样拼凑在一起

我不明白的是,为什么我在调试模式下运行应用程序时会得到不同的结果,而我编译并在我的开发pc上运行应用程序时会得到不同的结果,而我在另一台pc上安装应用程序时会得到不同的结果

是的,我知道我很笨,所以请告诉我在哪里可以找到更多关于这个的信息。我希望找到一些像不同的链接,注册表相关的连接等我现在根本没有得到的东西,即像蜡上,蜡下:P

最让我头疼的是,当我试图调试QA中的一些错误时,我需要找到一台备用pc来测试它,而且我不能直接调试,因为如果我这样做,我不知道代码在哪里


谢谢

首先要检查应用程序所依赖的所有dll的版本,包括VB6 dll的service pack版本

你有没有更具体的细节来说明行为的不同

我在调试模式下运行应用程序,而不是编译应用程序并在我的计算机上运行应用程序 开发个人电脑

编译时,您可以选择编译为本机代码或pcode。调试器仅使用pcode运行。在极少数情况下,当编译为本机代码时,行为会发生变化。这种特殊的情况真的很少见。我使用VB6,因为它的发行,我可能会得到它一年一次或两次。我的应用程序是一个复杂的CAD/CAM创建形状和运行金属切割机,有24个DLL。不是典型的情况。在家里用我的爱好软件我从来没有遇到过这个问题

还有另一类错误是由事件排序问题引起的。虽然VB6不是真正的多任务,但它能够跳出当前代码块来处理事件。如果它为新事件重新进入同一块,可能会产生有趣的结果(至少可以这么说)。我认为这可能是您的问题的根源,因为您的软件是一个编辑器,它是一种高度交互的软件类型

一般来说,通过重新排列受影响的区域来解决问题。通过插入MsgBox或写入文本文件以记录您所在的位置,可以找到受影响的区域。我建议将日志记录到文本文件,因为MsgBox会改变与定时或多任务相关的行为

记住,如果一个事件在代码块的中间VB6的时候发生,并且在DOFECT周围浮动,那么它将留下代码块来处理事件并返回到原来的代码块。如果它重新进入相同的代码块,而您不是有意让它发生,那么您将遇到问题。在不同的计算机上,您会遇到不同的问题,因为每个计算机的计时方式不同

处理此类问题的最简单方法是创建一些标志变量。在多任务术语中,它们被称为信号量或互斥量。当您输入代码的关键部分时,将其设置为true。当您离开例程时,将其设置为false。如果在输入代码的该部分时它已经为真,则不会执行它

当我把它安装在另一台电脑上时

这些通常是由于安装了错误的DLL造成的。很可能您的版本较旧,而目标系统的版本较新。我会下载免费的虚拟PC,并创建一个干净的WindowsXP安装来再次检查这一点

如果您的问题是事件计时,那么在不同的计算机上也可能不同。这是通过记录(非MsgBox)可疑区域发现的


如果您可以显示屏幕截图或特定错误的文本,那么我可以提供更好的帮助。

我经常看到的一些是退出条件,比如我可以在我的开发电脑上很好地退出。但是当我在安装的版本上退出时,它会猛烈地消失。就像在“向Microsoft发送错误报告”中一样——类型死亡?您是否卸载了所有表单(并非总是必需的,但有时确实如此)?不,只是不同类型的退出死亡,其行为不同于在ide模式下运行。@RS谢谢,到目前为止,我还没有任何表单,但我遇到了不少表单,决定是时候想方设法打开我的思路了。相关问题: