MFC工程文件调用其他.c文件时发生错误。
1.把.C文件修改为.CPP文件;
2.把.h及.cpp文件加入工程;
3. .h及.cpp文件开头加入#include<stdafx.h>
然后编译出现以下问题提示:fatal error C1083 无法打开包括文件,解决方法如下:
步骤1:定位报“fatal error C1083: ”错误的文件,找到它所在的目录。
步骤2:添加该项目的附加路径 。如图所示:
1)右键查看该项目的属性
2)点击配置属性——〉 C/C++ ——〉 常规 ——〉 附加包含目录——〉将报错文件所在目录添加进去
3) 将项目的本地路径替换为工程相对路径
工程根目录为:$(ProjectDir)
其子目录inc为:$(ProjectDir)inc
==========================================================
这时因为该模块没有包括预编译头文件“stdafx.h”的缘故。 VC用一个stdafx.cpp包含头文件stdafx.h,然后在stdafx.h里包含大部分系统头文件,这样编译时VC就通过编译stdafx.cpp把大部分系统头文件预编译进来了,在Debug目录下有一个很大的文件*.pch,这里就存储了预编译信息。根据这个原理,如果这个pch损坏了或被删除了,系统重新编译时就会抱怨“cannot open precompiled header file debug/*.pch”。这时怎么解决这个问题呢,打开Project-》 Setting对话框选C++页,将Category下拉式列表框选中Precompiled Headers,最简单的办法就是选中第一个选项“Not using....",这样就根本不用预编译头也不去寻找pch文件, 就不会出错了,但是这样做的后果是每次编译、连接都化更多的时间。 也可以选第二个选项”Automatic ...",然后在“Through header”力填上stdafx.h,这样 如果没有pch文件系统会自动生成一个pch,如果有的话就使用这个pch,这个选项是比较“ 智能”的。 第三个选项是强行创建一个pch文件,第四个选项是直接使用pch文件。当然“Through headers”里都填stdafx.h了。