【问题标题】:The Ordinal 9641 could not be located in Dll序号 9641 不能位于 Dll 中
【发布时间】:2012-12-14 13:28:07
【问题描述】:

我已启动 MFC 应用程序并尝试在调试模式下运行并以消息结束 “无法在 Dll 中找到序数 9641”。

我没有添加任何代码。我使用的是 VS 2008 SP1

请帮我摆脱这个错误。

【问题讨论】:

  • 序号 9641 是 CMFCBaseTabCtrl::GetVisibleTabsNum()。某种 DLL Hell 问题,鉴于 mfc90.dll 存储在并行缓存中,很难猜出你是如何进入这个 pickle 的。使用 SysInternals 的 ProcMon 找出正在加载的 DLL。
  • @HansPassant 感谢您的快速响应....您如何确定序数 9641 是 CMFCBaseTabCtrl::GetVisibleTabsNum()
  • @HansPassant 昨天我安装了可能是原因的 vs 2008 功能包...不确定
  • 这已经包含在 VS2008 SP1 中了。所以是的,很有可能你把事情搞砸了。
  • @HansPassant 我在调试模式下运行应用程序,发现以下 dll 正在从 c:\Windows\WinSxS 文件夹加载 mfc90ud.dll、msvcr90d.dll、comctl32.dll、msvcp90d.dll....

标签: visual-studio-2008 mfc


【解决方案1】:

我遇到了类似的问题。它会在我的系统机器人中运行,而不是在其他工程师的系统中运行。我所做的更改是“配置属性->常规->在静态库中使用 MFC”和运行时库到 /MT 或 /MTd(C/C++ -> 代码生成 -> 运行时库 -> 多线程调试)。它之所以有效,是因为它只是绕过了原始 dll。它会大大增加 exe 的大小,如果它是在 PC 或服务器上运行,它不会介意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多