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

发布于 2024-07-22 16:39:15 字数 451 浏览 4 评论 0原文

这是我的问题:

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

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

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

任何人都可以阐明这一点吗? 如何使第 3 方 dll 路径对我的应用程序或系统可见?

Here is my problem:

I have developed an application which can be run on various platforms, including Windows and Unix. This app runs well on pure Win32 box (WinXP) or a pure Win64 (Win2K3 x64 edition) and other unix platforms.

It only fails when running on a 64 bit Win2K3 in 32 bit mode. This app invokes a third party dll at the runtime. And the third party dlls are not formally installed, but just copied to a location in the same env. I'm also sure I'm having the right version of these 3rd party dlls (I mean 32 bit version for 32 bit mode). Even I manually set the "path" in this testing box, it still doesn't work. The app is compiled and built in 32 bit mode in this Win2K3 box.

I run dependency walker and see the same error. Cannot find that 3rd party dll.

Can anyone shed some lights on this? How do I make that 3rd party dll path visible to my app or the system?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

去了角落 2024-07-29 16:39:15

我建议您执行以下操作:

  • 确保您使用的是 32 位
    具有 32 位应用程序的有问题 DLL 的版本
  • 使用 filemon 来查看您的路径
    应用程序在加载时尝试
    DLL
  • 检查它是否工作,如果你放置
    进入这些路径之一的 DLL
  • 使用与该 DLL 的依赖关系遍历器
    本身 - 它可能有自己未解决的问题
    依赖关系

I would suggest you to do the following:

  • ensure that you are using 32-bit
    version of the problematic DLL with 32-bit app
  • use filemon to see what paths your
    application tries while loading that
    DLL
  • check whether it works if you place
    that DLL into one of those paths
  • use dependency walker with that DLL
    itself - it might have its own unresolved
    dependencies
牵强ㄟ 2024-07-29 16:39:15

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

WOW64 redirects all calls by 32 bit applications to the System32 folder to the SysWOW64 folder. Is the third party DLL in the system32 folder? Because the system32 folder, contrary to what you'd expect, contains ONLY 64bit DLLs on Windows x64.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文