在自己的电脑上编译和运行的MFC代码,换一台新机器时报错,如下图所示:
(我换的这台机器一开始并没有VC的环境,我是后来扩展这个组件的。这个很重要,解决问题的关键就是这个后来扩展的组件)
本身在自己的电脑上,这些文件打开其实都属于VC库文件。但是一直无法通过编译。百度了很多也没有答案。
最后也的确发现是库的问题。。。
接下来说解决方法:
我在我自己的电脑上跟踪搜索new.h这类文件是在我的电脑的什么位置。一般下载VS的时候,各个组件都会自动安装一些必要的文件在系统盘下面。
果不其然,最后被我在自己的电脑上找到,这些打不开的头文件,都在一个系统盘的某一个文件夹下:“C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0”(这个是我自己电脑上的文件夹)
于是顺藤摸瓜,在报错的机台下寻找这个目录,发现我扩展的VC组件的确是没有“10.0.10240.0”这个文件夹,而实另外一个数字文件夹。
问题就这样发生了,因为在我自己的电脑上编译都是基于这个文件夹下生成的工程文件。换了台电脑找不到这个目录,自然就会报错。
解决:在报错的电脑中找到”C:\Program Files (x86)\Windows Kits\10\Include\“目录下的哪一个文件夹。(这个目录是固定的,就算当初安装VS的时候你没有默认安装,这个文件还是会保存在这个路径下)
在工程属性-》VC++目录-》包含目录:中添加上这个文件目录即可
在两台电脑中编译可能还会有其他找不到VC本身的一类库文件,解决办法同理,对照着看一下两台电脑的环境一般都能找到答案。