Windows兼容模式的缺陷

时间:2014-04-11 19:03:09

标签: windows-7 vb6 legacy compatibility-mode

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

一个好的猜测是你的应用需要提升(上面的列表#2)。

BTW如果启动一个进程,它会正常启动它,如果(执行它的结束函数)createprocess因ElevationRequired而失败,它会重新启动它。

答案 1 :(得分:1)

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