【问题标题】:MFC-C Code merge issueMFC-C 代码合并问题
【发布时间】:2014-07-18 16:51:14
【问题描述】:

我在 C 代码的顶部编写 MFC-GUI,在从 c 代码中获取 lib 和包含文件后,我收到下面提到的许多变量的重新定义错误-

error C2011: 'fd_set' : 'struct' type redefinition

error C2011: 'timeval' : 'struct' type redefinition

error C2011: 'hostent' : 'struct' type redefinition
error C2011: 'netent' : 'struct' type redefinition

error C2011: 'servent' : 'struct' type redefinition

error C2011: 'protoent' : 'struct' type redefinition

还有更多......

它与代码无关,因为它独立工作正常,所以我需要一些合并配置方面的帮助。 我是怎么做到的—— 我创建了一个新的 MFC 项目 + 解决方案,在其中添加了一个对话框,构建它 - 工作正常;现在我在上述解决方案中添加了一个现有的 C 项目,为添加的 C 项目配置了 MFC 项目。在配置中,我已经给出了所有必需的 Lib 和包含路径。 现在从 MFC 代码中,我试图包含 C 代码文件,它给了我上述错误。

是我遗漏了什么还是我添加了错误的东西?

请帮我解决这个问题。

谢谢。

【问题讨论】:

  • 文件定义重复。

标签: c++ c user-interface mfc merge


【解决方案1】:
  1. 确保在所有 .h 文件的顶部添加 #pragma once

  2. 检查是否包含多个 .h 文件。

    例如。 如果您的 main.cpp 包含 head1.hhead2.h 并且 head1.hhead2.h 都包含一个公共标头,例如 utils.h ,则可能会导致此类重新定义问题。 如果有,请检查并排除此类事件。

【讨论】:

  • 非常感谢......是的,这是同一个问题......即使我也在研究同一个领域......但这里的关键点是 - 问题在于 c 代码和这个 c代码是独立编译的,但在我们尝试使用 MFC 时不会。再次感谢!!!!
猜你喜欢
  • 2012-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
相关资源
最近更新 更多