在 Win7 x64 中运行 32 位应用程序时出现问题

kmo*_*gom -2 windows

原文链接:http : //wattsupwiththat.com/2011/02/21/windows-7-64-bit-now-even-suckier/

基本上,他无法让他的 32 位应用程序在 x64 下运行。他已经尝试过 XP 兼容模式。

除了购买非常昂贵的 x64 版本之外,还有其他选择吗?

Joe*_*oel 5

我在 x64 兼容性问题方面的经验通常归结为一件事:在“任何 CPU”模式下编译的 .Net 软件中的错误,该错误会引入 32 位非托管 dll。

在 x64 系统上运行时,.Net 框架尚不具备在应用程序启动时所需的信息,以了解动态加载的库需要 32 位模式,因此它会启动“任何 CPU”编译的程序和 64 位进程. 这是它应该做的。当然,这个 64 位进程以后不能加载 32 位 dll。软件开发人员将应用程序从“任何 CPU”更改为“x86”然后重建大约需要 10 秒的时间,但您必须说服他们他们需要这样做。

这实际上是一个非常常见的场景,因为如今的许多应用程序(尤其是为 CPU 密集型任务提供前端的视频处理等类别)将使用 .Net 构建一个 Windows 界面,该界面仅调用更多-用 C 或 C++ 编写的高性能库。

我记得有一次讨论(可能在 MS MVP 之间)关于可能将 Visual Studio 中的默认编译模式从“任何 CPU”更改为“x86”以解决此问题,但我不记得它发生了什么。