0

这是我的问题:

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

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

我运行dependency walker 并看到同样的错误。找不到该第 3 方 dll。

任何人都可以对此有所了解吗?如何使第 3 方 dll 路径对我的应用程序或系统可见?

4

2 回答 2

1

我建议您执行以下操作:

  • 确保您在 32 位应用程序中使用有问题的 DLL 的 32 位版本
  • 使用 filemon 查看您的应用程序在加载该 DLL 时尝试的路径
  • 如果将该 DLL 放入这些路径之一,请检查它是否有效
  • 对该 DLL 本身使用依赖项walker - 它可能有自己的未解决依赖项
于 2009-05-29T16:44:03.637 回答
0

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

于 2009-05-31T04:02:49.933 回答