为什么 MSVC 2010 32 位项目链接到 64 位 kernel32.dll?

2023-11-26

我有一个 Win32(32 位)DLL 项目,它的构建和链接没有错误。 DLL 无法加载到 32 位进程中。使用 DependencyWalker,我看到 DLL 是 32 位的,但已与 kernel32、msvcr100d、ws2_32 和 msvcr100 的 64 位库链接。

DependencyWalker 也显示错误

Error: Modules with different CPU types were found.

我已经对这个问题感到困惑了几个小时,只是无法理解它 - 有其他人经历过这个并找到解决方案吗?


简短回答: Use x86 的依赖项 Walker对于 x86 的东西。

长答案:最初我使用x64 的 Dependency Walker在 MS Windows 7 操作系统上并遇到了您遇到的障碍。然后我按照 MerickOWA 关于更改搜索路径的建议(感谢 MerickOWA)。尽管我仍然有一些依赖项导致“错误:找到具有不同 CPU 类型的模块”。

我没有弄清楚如何配置 Dependency Walker 以在“c:\windows\winsxs\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_2b24536c71ed437a\GDIPLUS.DLL”等奇怪的路径中搜索 x86 DLL,而是正确使用了x86 的依赖项 Walker。对我来说就像一个魅力!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 MSVC 2010 32 位项目链接到 64 位 kernel32.dll? 的相关文章

随机推荐

  • Java 9 - 在运行时动态添加 jar

    我遇到了 Java 9 的类加载器问题 此代码适用于以前的 Java 版本 private static void addNewURL URL u throws IOException final Class newParameters n
  • Java 中按钮和文本字段不显示

    对于学校 我必须制作一个 JFrame 并在其中一个按钮和两个文本字段中 当按下按钮时 您在文本字段一中输入的任何内容都必须进入文本字段二中 我得到的代码是当我运行程序时我应该看到文本字段和按钮 无论出于什么原因 它都没有 我到目前为止 p
  • 在 Prolog 中将数字拆分为数字列表

    我在尝试使用 Prolog 将数字拆分为列表时遇到了麻烦 例如123456 变成 1 2 3 4 5 6 你能帮我弄清楚如何做到这一点吗 可用的内置函数符合 ISO 标准 number codes 123456 X format s X 1
  • Django/Visual Studio 教程 - 对象方法错误

    我正在学习 Django 教程 here 我在 Mac 上使用 Visual Studio VS 一直显示此代码错误 latest question list Question objects order by pub date 5 错误读
  • catch 和 throw 在 Ruby 中哪些地方有用?

    我真的看不出这些有什么合理的用途 已经有rescue and raise 那么为什么需要throw and catch 看起来它们应该被用来跳出深层嵌套 但这对我来说就像是一个 goto 有没有良好 干净地使用这些的例子 Note 看起来
  • Asp.net Core Post 参数始终为 null [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我从 fiddler 发送 POST POST http localhost 55924 api Product HTTP 1 1 User Agent Fiddler Ho
  • 保护与 Javascript 小部件一起使用的 API

    我正在编写一个 javascript 插件 将由博主 网站所有者安装 它将与我的远程 API 进行通信 我想知道如何保护 API 的安全 以确保只有已注册该服务帐户的用户拥有的域才能从 API 访问资源 我已经阅读了 OAuth2 并了解了
  • Python 中 cor.test 的 R 等效项

    有没有办法在Python中找到r置信区间 在 R 中我可以做类似的事情 cor test m h Pearson s product moment correlation data m and h t 0 8974 df 4 p value
  • 运行 MySQL CREATE TABLE 语句时出现语法错误[重复]

    这个问题在这里已经有答案了 CREATE TABLE users user id INT 8 NOT NULL AUTO INCREMENT user name VARCHAR 30 NOT NULL user pass VARCHAR 2
  • PL/SQL 开发人员导入转储

    我有一个转储文件 其中包含两个表 现在我需要导入这个转储文件 我被指示预先创建两个表空间 现在如何将此转储文件导入到这些表空间中 我正在使用 PL SQL 开发人员 您无法从 PL SQL Developer 导入转储文件 相反 您必须从命
  • 文件访问中文本模式和二进制模式有什么区别吗?

    如果我以文本模式而不是二进制模式打开文件有什么区别吗 因为我读到UNIX和Linux不区分文本和二进制文件 在 Linux 上没有区别 至少在 Ext4 等本机文件系统上 以及大多数其他文件系统上 以及通常的 GNU libc Perhap
  • 可迭代解包的默认值

    我经常因 Python 的可迭代解包缺乏灵活性而感到沮丧 举个例子 a b range 2 工作正常 a包含0 and b包含1 正如预期的那样 现在让我们试试这个 a b range 1 现在 我们得到一个ValueError Value
  • 用户定义文字的每个“正常”使用都是未定义行为吗?

    用户定义的文字must以下划线开头 这是一条或多或少众所周知的规则 您可以在每个谈论用户文字的外行语言网站上找到它 这也是我 可能还有其他人 从那时起就以 胡说八道 为由公然忽视的规则 当然 现在看来这是完全不正确的 从最严格的意义上来说
  • Flow 不更新可组合项

    我遇到了以下问题 这是注册屏幕 上面有几个输入字段 当用户输入内容时 该值会传递到 ViewModel 设置为屏幕状态并通过 StateFlow 传回屏幕 从可组合项中 我正在观察这个 StateFlow 问题是 Composable 在向
  • 没有有用且可靠的方法来检测 C/C++ 中的整数溢出?

    不 这不是重复的如何检测整数溢出 问题是一样的 但是问题不同 gcc 编译器可以优化溢出检查 使用 O2 例如 int a b b abs a will overflow if a 0x80000000 if b lt 0 printf o
  • Estimator 的 model_fn 包含 params 参数,但 params 不会传递给 Estimator

    我正在尝试在本地运行对象检测 API 我相信我已按照中所述设置了所有内容TensorFlow 对象检测 API然而 当我尝试运行 model main py 时 此警告显示并且模型无法训练 我无法真正判断模型是否正在训练 因为该过程没有终止
  • 有 com.l2fprod.common.propertysheet.PropertySheetPanel 来显示组合类

    为了拥有 Netbeans 喜欢的属性检查器窗口 我使用以下类来帮助我实现这一目标 com l2fprod common propertysheet PropertySheetPanel 到目前为止 它对于具有简单属性 例如 String
  • 在 NextJS 项目中使用 Tailwind 和 MUI 时出现意外行为(白色按钮错误)

    我目前正在使用 NextJS TailwindCSS 和 MUI React UI 库构建一个项目 每当我尝试向我的项目添加 MUI 按钮时 它工作正常 但按钮的颜色保持白色 悬停时颜色恢复正常 单击按钮时仍然具有波纹效果 但当不悬停时 它
  • 应用程序内更新不适用于应用程序包 apk

    我在我的 Android 应用程序中实现了最近推出的应用内更新 API 当我构建 apk 并测试此功能时 它工作正常 我已经上传了带有测试版的更高版本的apk 但是 当我构建应用程序包并将应用程序包上传到内部内部应用程序共享时 永远不会提示
  • 为什么 MSVC 2010 32 位项目链接到 64 位 kernel32.dll?

    我有一个 Win32 32 位 DLL 项目 它的构建和链接没有错误 DLL 无法加载到 32 位进程中 使用 DependencyWalker 我看到 DLL 是 32 位的 但已与 kernel32 msvcr100d ws2 32 和