【问题标题】:How do I rebuild MFC project in x64?如何在 x64 中重建 MFC 项目?
【发布时间】:2010-05-26 14:34:53
【问题描述】:

我在 MFC 中有一个在 x32 中运行良好的项目。

我使用配置管理器将项目更改为x64,然后我尝试重建项目。

对于许多 MFC 函数,结果是“无法解析的外部符号”。

我想我在 x64 平台的工具/选项工具栏中错过了一些东西,但我不知道是什么。

附言

当我将平台更改为 x64 时,win32 控制台应用程序工作正常

【问题讨论】:

  • 我遇到了一些在静态库中使用 MFC 的应用程序。切换到在 DLL 中使用 MFC 修复了它。当然不能保证,但如果您在静态库中使用 MFC,那么值得一试。

标签: mfc 64-bit


【解决方案1】:

对于我们的应用程序,问题是使用 VS 2005 中的配置管理器更改为 x64,重新编译,并根据警告提示在各处修复一些问题。它运行良好,尽管由于它的大小需要一段时间才能完成所有操作。

换句话说,假设你做得正确,你所做的应该是有效的。您没有提供有关如何更改项目的详细信息,或者哪些功能是“未解析的外部符号”,或者配置的任何详细信息。我强烈建议您发布更多详细信息。

您还应该确保 VS x64 已完全安装在您的机器上。我在那里看到了一些问题。

【讨论】:

  • 其中一个未解析的外部符号函数是 static struct CRuntimeClass* _cdecd CFrameWndEx::GetThisClass
  • 当我在 MSDN 上查找 CFrameWndEx 时,我看不到 GetThisClass。我的搜索可能有问题,但您确定这是标准 MFC 功能吗?
  • 我重装了VS 2008,现在可以正常使用了,感谢您的专业指导
【解决方案2】:

正如 David 所指出的,您应该检查 VS x64 的完整安装。 由于项目属性中给出的链接器的一些额外输入,可能会显示未解析的引用,可能是由于您可能包含了某些特定的 32 位 lib 文件。

【讨论】:

  • 我尝试了一个简单的对话框应用程序,我没有进行任何更改。我仍然得到未解决的外部符号
  • 你有完整安装VS 2008 x64的链接吗? (msdn网站有很多版本)
  • 查看此链接,看看是否有帮助:msdn.microsoft.com/en-us/library/ms246588(VS.80).aspx
  • 还要确保当您可能已经安装 Visual Studio 时,如果您不确定,您应该选择所有组件而不是默认选择。我不记得默认选择是否包括 64 位。否则,您可能需要查看所选组件并确保包含 64 位支持。
  • 我重装了VS 2008,现在可以正常使用了,感谢您的专业指导
猜你喜欢
  • 1970-01-01
  • 2015-11-12
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多