加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我的Visual C编译器编译过时的源代码

发布时间:2020-12-16 06:54:51 所属栏目:百科 来源:网络整理
导读:我是初学者,开始使用Microsoft Visual C Express 2010进行 Windows编程.我使用本机代码创建了一个新的C应用程序,而不是托管或MFC.我让Visual Studio为我创建了基本的Windows代码来创建一个带有简单菜单的窗口(chat.cpp).我修改了这个文件,我能够正确编译并看
我是初学者,开始使用Microsoft Visual C Express 2010进行 Windows编程.我使用本机代码创建了一个新的C应用程序,而不是托管或MFC.我让Visual Studio为我创建了基本的Windows代码来创建一个带有简单菜单的窗口(chat.cpp).我修改了这个文件,我能够正确编译并看到我的更改生效.

现在我又向解决方案(intro.cpp)添加了一个源文件,我将其包含在我的标题中并从chat.cpp中调用.这似乎工作得很好,但有一个问题.编译器似乎偶尔不会应用我的代码更改:我进行了各种编辑,重新编译,并且“旧”代码似乎正在运行.然后,过了一段时间,在我做了一个小小的修改后,编译器似乎“赶上”并运行新代码,包括我以前所做的所有更改.

有某种缓存吗?我是否需要告诉编译器要编译哪些文件以及哪些文件只能从目标文件链接?将文件添加到解决方案时,我是否犯了错误?

解决方法

intro.cpp有头文件吗?在你的解决方案中也是这样吗?

我很难想象这个成熟IDE的这个区域有一个bug,所以我先检查一下你的文件列表.确保解决方案资源管理器显示您已添加并正在编辑的所有文件.这是VS用于确定重建的列表.

编辑:我承认我从你的描述中不清楚为什么它现在会失败.但是,通常头文件不包含代码,它以相反的方式工作(类模板头文件除外,例如STL头).有一些关于利弊here的讨论.对我来说最有说服力的论点是支持包括头文件而不是反之亦然的代码是头文件包含接口,而代码文件包含实现.

我会尝试将您的代码重构为一个更传统的结构,其中intro.cpp包含intro.h以及它需要的任何其他内容,以及chat.cpp也是如此.然后你的编译单元是intro.cpp和chat.cpp,它们依赖于相关的头文件,所以只要它们在SOlution Explorer中正确列出,一切都应该有效.您可以清理构建依赖项以避免重复,并在您按照自己的意愿工作后减少构建时间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读