【问题标题】:Run applications in Windows 7 as 32 bit在 Windows 7 中以 32 位运行应用程序
【发布时间】:2011-11-07 22:27:26
【问题描述】:

所以我们有一个用于编译到“任何 CPU”的应用程序。它将在 Windows 7 机器上以 64 位模式运行,但在尝试调用以 32 位模式运行的互操作时会出错。

我查看并将项目的编译目标更改为以 x86 为目标,在本地编译并运行它,它工作正常。

但是,当提交此更改时,它仍以 64 位在 Windows 7 生产机器中运行。

当我进行更改时,我只是在 VS2010 中打开配置管理器,将其更改为 x86,保存并提交解决方案中每个项目的更改。

如何让它在 32 位模式下运行?我需要更改其他内容吗?

【问题讨论】:

  • 问:您是否将所有配置都更改为 x86,而不仅仅是例如调试配置?
  • 您如何知道您的应用程序以 64 位运行?
  • 您不需要为解决方案中的每个项目都执行此操作,只需执行可执行文件即可。 DLL 将在加载它们的 exe 中发挥作用
  • 不,是的,我很确定。 chris - ctrl-alt-delete - 查看任务,如果它是 32 位的,它将附加 32*

标签: visual-studio-2010 windows-7 64-bit x86


【解决方案1】:

您需要 SDK 中的 corflags 工具

corflags MyApp.exe /32bit+

将更改 exe 以作为 32 位进程运行。

相反

corflags MyApp.exe /32bit-

将exe改成AnyCPU

corflags MyApp.exe

会告诉您 exe 的标头中的内容,因此您可以实际看到它的目标。

【讨论】:

    【解决方案2】:

    这是 VS2010 中的一个不幸陷阱,配置管理器中的“活动解决方案平台”设置与托管 C# 和 VB.NET 项目无关。对于 C#,您必须使用项目 + 属性、构建选项卡、平台目标设置。只有启动 (EXE) 项目的设置很重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-16
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多