因为,32位应用程序无法在x64 Win2003上运行

时间:2009-05-29 16:29:20

标签: c++ windows 64-bit 32-bit

这是我的问题:

我开发了一个可以在各种平台上运行的应用程序,包括Windows和Unix。这个应用程序在纯Win32盒(WinXP)或纯Win64(Win2K3 x64版)和其他unix平台上运行良好。

仅在32位模式下运行64位Win2K3时失败。这个应用程序在运行时调用第三方DLL。第三方dll没有正式安装,只是复制到同一个环境中的某个位置。我也确定我拥有这些第三方dll的正确版本(我的意思是32位模式的32位版本)。即使我在此测试框中手动设置“路径”,它仍然无效。该应用程序在此Win2K3框中以32位模式进行编译和构建。

我运行依赖walker并看到相同的错误。找不到那个第三方dll。

有人可以对此有所了解吗?如何将第三方dll路径显示给我的应用或系统?

2 个答案:

答案 0 :(得分:1)

我建议你做以下事情:

  • 确保您使用的是32位 有问题的DLL版本与32位应用程序
  • 使用filemon查看您的路径 应用程序在加载时尝试 DLL
  • 检查是否有效 那个DLL成为其中一个路径
  • 将依赖性walker与该DLL一起使用 本身 - 它可能有自己未解决的问题 依赖

答案 1 :(得分:0)

WOW64将32位应用程序的所有调用重定向到System32文件夹到SysWOW64文件夹。是system32文件夹中的第三方DLL吗?因为system32文件夹与您期望的相反,在Windows x64上仅包含64位DLL。