【01】MFC 学习

来源:互联网 发布:2016网络大神新书排行 编辑:程序博客网 时间:2024/05/01 03:22

1 直接建立MFC 工程,出现问题如下

fatal error C1083: Cannot open precompiled header file: 'Debug/test01.pch': No such file or directory

网上解决办法:

先编译StdAfx.cpp ,没有错误,再编译全部没有错误,点击运行,出现空白对话框

参考链接:http://blog.csdn.net/l_yui/article/details/41312647

预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码. 

为什么需要预编译头文件?一言以蔽之:提高编译速度.一般地,编译器以文件为单位编译,如果修改了一工程中的一个文件则所有文件都要重新编译,包括头文件 里的所有东西(eg.Macro宏,Preprocessor预处理),而VC程序中,这些头文件中所包括的东西往往是非常大的,编译之将占很长的时间. 但它们又不常被修改,是较稳定的,为单独的一个小文件而重新编译整个工程的所有文件导致编译效率下降,因此引入了.PCH文件. 

如何使用预编译头文件以提高编译速度?要使用预编译头文件,必须指定一个头文件(.H),它包含我们不会经常
修改的代码和其他的头文件,然后用这个头文件 (.H)来生成一个预编译头文件(.PCH)VC默认的头文件就是StdAfx.h,因为头文件是不能编译的,所以我们还需要一个.CPP文件来作桥梁, VC默认的文件为StdAfx.cpp,这个文件里只有一句代码就是:#include "StdAfx.h".接下来要用它生成.PCH文件,涉及到几个重要的预编译指令:/Yu,/Yc,/Yx,/Fp.简单地说,/Yc是用来生成. PCH文件的编译开关.在Project->setting->C/C++的Category里的Precompiled Header,然后在左边的树形视图中选择用来编译生成.PCH文件的.CPP文件(默认即StdAfx.cpp)你就可以看到/Yc这个开关,它表示这 个文件编译了以后是否生成.PCH文件(可能/Yc的c表示create)./Fp指令指定生成的.PCH文件的名字及路径(可能/Fp的p代表 path)./Yu的u即use使用,工程中只要包括了.H文件的文件都会有这个/Yu指令.如果选择自动Automatic...的话则原来为/Yc的 地方就换成了/Yx指令.如果选择自动,则每次编译时编译器会看以前有没有生成过.PCH文件,有则不现生成否则就再次编译产生.PCH文件. 


2 修改程序,使空白对话框中出现hello world 字样



修改后直接点击编译链接执行,在Link 阶段可能会出现错误如下:

LINK : fatal error LNK1168: cannot open Debug/Test.exe for writing

参考链接如下:

http://blog.csdn.net/li2327234939/article/details/50878677

我的出错原因是因为没有关闭上一次执行产生的对话框,关掉上次调试的结果再次生成即可。

注意:在classview 栏目下课可以找到需要修改的函数

          这个例子中使用到的 GetClientRect(rect),pDC->DrawText  有什么作用?



原创粉丝点击