0

我们有一个 VB6 应用程序,我们正在从 Windows XP 迁移到 Windows 7,我们遇到了几个问题。如果我们将应用程序的兼容模式设置为 Windows XP (Service Pack 3),其中一些问题就会消失。

我想知道简单地在兼容模式下运行我们的应用程序是否是一个好的解决方案。我一直在做一些谷歌搜索,但没有发现任何暗示使用兼容模式有不利之处。但是大多数人将它用于他们没有开发的应用程序。

长期目标是用 C# 替换所有 VB6 代码,但这需要时间。也许在我们更换 VB6 的同时使用兼容模式并不是一件坏事。

有没有人有开发应用程序并有意让它在兼容模式下运行的经验?我的直觉说这是一个坏主意,但我找不到任何反对使用它的证据。

4

2 回答 2

1

我有一个旧的 vb6 应用程序,我最近不得不在 win7 64 位上工作。以 xp 模式运行是解决方案的一部分。我在使用旧安装程序时遇到了其他问题,需要使用提升的命令提示符对 windows\sysWOW64\ 运行 regsvr32.exe。我需要以管理员身份登录才能安装,因为以管理员身份运行安装程序不起作用。花了 45 分钟左右的时间注册组件,但最终还是很好。希望有帮助。欢呼戴夫

于 2014-04-15T13:45:18.033 回答
1

有消费者应用程序(非常糟糕的兼容模式)和业务线应用程序 - 你可以做你需要做的事情。你控制环境。

这些是 WinXPSP2 所做的特定事情(我在 Vista 上没有 SP3 选项)。

DirectXVersionLie
ElevateCreateProcess
EmulateSorting
EnableLegacyExceptionHandlinginOLE
FailObsoleteShellAPIs
GlobalMemoryStatus2GB
HandleBadPtr
HardwareAudioMixer
LoadLibraryCWD
NoGhost
RedirectMP3Codec
VirtualRegistry
WinXPSP2VersionLie

一个很好的猜测是您的应用程序需要运行提升(上面列表中的#2)。

顺便说一句,如果启动一个进程,它会正常启动它,如果(执行它的最终函数)createprocess 失败并出现 ElevationRequired 它会重新启动它提升。

于 2014-04-11T19:18:03.287 回答