控制Word的VB6应用程序在调试期间的行为与编译时不同

时间:2010-11-01 14:21:41

标签: vb6 office-interop

我有一个vb6应用程序,它使用Word互操作来创建一些报告。在介绍这些报告时,图像周围的4个文本框中有一些说明。

最近突然,前两个文本框开始出现在下一页,我无法弄清楚原因。当我单步执行代码并观察单词文档构建时,一切都正确定位,但是,如果我编译应用程序,则会再次出现错误。

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

使用对Word的后期绑定调用。这并不意味着删除对Microsoft Word Xxx Object Library的引用,只需像这样更改Dim

Dim oWord As Object '--- was Word.Application'
Dim oDoc As Object '--- was Word.Document'
...
oDoc.Protect wdAllowOnlyReading '--- keep using enums'

答案 1 :(得分:0)

这可能是一些“四舍五入”的差异吗?例如,如果比较float point的两个equality值,结果可以巧妙地依赖于特定的编译器/解释器实现。

我建议将代码减少到最低限度,以显示不同的行为。这可能已经清楚了。如果没有,请在此发布,以便我们为您提供帮助。

答案 2 :(得分:0)

在调试时,您运行编译版本的用户可能与运行VB的用户不同吗?如果这两个用户有一些不同的Word设置,这可能会导致你所描述的内容。

编译后的版本是否可能找到.dot文件的不同版本?

如果您显示用于创建Word文档的代码可能会非常有用,因为此处有人可能会注意到移动到编译版本时可能有意义的事情。

答案 3 :(得分:0)

您是否在依赖于计时的事件中有任何代码,例如Form_Activate,Load或Unload?我已经看到这些事情在单步执行代码和编译时表现得非常不同,尤其是在更新,更快的机器上。