我正在 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 项目。在配置中,我已经给出了所有必需的库和包含路径。 现在,我试图从 MFC 代码中包含 C 代码文件,它给了我上述错误。
我是否遗漏了什么或添加了错误的内容?
请帮我解决这个问题。
谢谢。
最佳答案
确保在所有 .h 文件的顶部添加
#pragma Once
。检查是否多次包含 .h 文件。
例如。 如果您的
main.cpp
包含head1.h
和head2.h
以及head1.h
并且head2.h
包含一个通用 header ,例如utils.h
,它可能会导致此类重新定义问题。 检查并消除此类事件(如果有)。
关于c++ - MFC-C代码合并问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24830142/