.dll只能在Windows XP和Vista上正常工作但不能正常工作吗?

时间:2011-07-08 16:33:02

标签: c windows dll backwards-compatibility

我有一个windows .dll文件(来自第三方 - 已停止支持它,我没有C源代码来纠正问题)。

我在我的一个项目中使用.dll。

.dll文件在Windows XP / Vista下完美运行(因为它是在这些操作系统版本是最新版本时发布的) - 现在的问题是该项目现在仅限于Windows XP / Vista用户(由于.dll) - 当它在Windows 7下运行时,它会略微出现故障(即与Windows XP / Vista相比产生不同的结果)。

我认为问题是微软必须改变一些东西(在Windows库中或其他东西?),这会影响兼容性。

所以我想知道 - 我知道它不是最好的选择,但作为临时/ hackish解决方法是他们可以为Windows 7用户模拟Windows XP / Vista功能,即。是他们为此设计的任何项目 - example => http://www.busybox.net/about.html(允许Linux功能在Windows上执行)。

感谢所有建议/解决方法。

3 个答案:

答案 0 :(得分:1)

听起来太容易了:但是Windows兼容模式呢?也许它有效。

答案 1 :(得分:1)

在Windows 7中,您可以在兼容模式下运行可执行文件,并将其设置为以与Windows XP兼容的模式运行。有关详细信息,请参阅Make older programs run in this version of Windows


请注意,您不能强制此.DLL始终使用兼容模式,但您可以更改安装程序,以便为执行此操作的用户或计算机进行相应的注册表设置。

您需要做的就是添加一个注册表项,如下所示。下:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Application Compatibility\Layers

添加如下的键:

"Path\To\Program\YourExecutable.exe"=WINXPSP2

这将使您的程序始终在compat模式下运行。如果您只想为当前用户设置它,也可以在HKCU中进行设置。

答案 2 :(得分:1)

您可以尝试在{7}}下的Windows 7上运行您的应用,并将结果与​​本机Windows XP的结果进行比较。