gpt4 book ai didi

visual-c++ - 32 位版本的 mfc100u.dll?

转载 作者:行者123 更新时间:2023-12-04 05:41:10 25 4
gpt4 key购买 nike

我有一个用 VS2010 开发的 32 位应用程序,但依赖者说它依赖于一个名为 mfc100u.dll 的 64 位文件。

这里的问题是某些计算机无法启动该应用程序。

我一直无法找到有关此的明确信息。这个文件有 32 位和 64 位版本吗?如果是这样,我如何确保 32 位应用程序使用一个版本而 64 位应用程序使用另一个版本? (如果这些应用程序在同一目录中?)

如果 32 位有不同的名称,那是什么?

最佳答案

Dependency walker 通常可以指示 DLL 的 64 位,但这是错误的。运行 32 位应用程序时 WOW64 使用称为文件系统重定向器的东西:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs.85).aspx

对 System32 目录的所有请求都被重定向到 syswow64 文件夹(无论您是否愿意)。

如果包含 64 位 DLL,应用程序将不会加载,您会在启动时收到某种“坏图像”错误。

尝试运行 32 位版本的 Dependency Walker,看看它是否适合您。

更新: MFC 和 C 运行时的 32 位和 64 位版本具有相同的名称。它们通常使用可再分发的 MSI 文件进行部署,Windows 将在运行时处理链接。但是,如果您绝对必须将特定版本链接到您的应用程序,则需要将它们部署在与您的应用程序相同的文件夹中。不要尝试在同一文件夹中混合 32/64 位版本。以下是微软对这个问题的看法:

http://msdn.microsoft.com/en-us/library/ms235264.aspx

注意:为了使问题复杂化,同一文件有不同的可再发行版本,例如VS2010 SP1 版本。

关于visual-c++ - 32 位版本的 mfc100u.dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11227072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com