【问题标题】:How to compile a program to work on a 64 bit machine如何编译程序以在 64 位机器上工作
【发布时间】:2023-04-01 03:47:01
【问题描述】:

我有一个在 Windows 2003 32 位机器上编译的 32 位应用程序。

当我尝试在 Windows Server 2008 或 Windows 7 上安装它时,我收到一条错误消息“无法启动应用程序 0xc0000142”

而且,我使用的是 Visual Studio 2008,我尝试设置 x64、x86 和混合平台的配置,但仍然没有成功。

如果我遗漏了任何明显的信息或需要更多信息,请告诉我。

它可以在 Server 2003 64 位上正常运行。

【问题讨论】:

  • 嗯...32 位程序可以在 64 位上运行...所以这不能是(唯一)原因。
  • 您是否在目标机器上安装了正确版本的 Visual C++ 运行时库?
  • 程序使用的 DLL 之一的 DllMain() 函数返回 FALSE。你需要一个调试器。
  • 它是否以非管理员帐户在 Server 2003 上运行?您可能违反了最小权限原则,UAC 正在追赶您(在 Vista、7、Win2k8、Win2k8R2 上)
  • 尝试在跟踪模式下运行Dependency Walker - 这将向您准确显示加载失败的内容。

标签: c++ visual-studio-2008 visual-c++ windows-server-2008


【解决方案1】:

我是链接vss_uid.lib、psapi.lib和traffic.lib,所有windows api库,编译的时候,就是把psapi.dll、vss.dll和traffic.dll打包到程序目录下。删除这些文件后,程序现在可以完美运行。

【讨论】:

    猜你喜欢
    • 2012-06-20
    • 1970-01-01
    • 2016-05-17
    • 2011-01-14
    • 2012-06-09
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    相关资源
    最近更新 更多