预编译头文件(一般扩展名为PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(PCH)里这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码
为什么需要预编译头文件一言以蔽之:提高编译速度一般地,编译器以文件为单位编译,如果修改了一工程中的一个文件则所有文件都要重新编译,包括头文件里的所有东西(egMacro宏,Preprocessor预处理),而VC程序中,这些头文件中所包括的东西往往是非常大的,编译之将占很长的时间但它们又不常被修改,是较稳定的,为单独的一个小文件而重新编译整个工程的所有文件导致编译效率下降,因此引入了PCH文件
如何使用预编译头文件以提高编译速度要使用预编译头文件,必须指定一个头文件(H),它包含我们不会经常修改的代码和其他的头文件,然后用这个头文件(H)来生成一个预编译头文件(PCH)VC默认的头文件就是StdAfxh,因为头文件是不能编译的,所以我们还需要一个CPP文件来作桥梁,VC默认的文件为StdAfxcpp,这个文件里只有一句代码就是:#include "StdAfxh"接下来要用它生成PCH文件,涉及到几个重要的预编译指令:/Yu,/Yc,/Yx,/Fp简单地说,/Yc是用来生成PCH文件的编译开关在Project->setting->C/C++的Category里的Precompiled Header,然后在左边的树形视图中选择用来编译生成PCH文件的CPP文件(默认即StdAfxcpp)你就可以看到/Yc这个开关,它表示这个文件编译了以后是否生成PCH文件(可能/Yc的c表示create)/Fp指令指定生成的PCH文件的名字及路径(可能/Fp的p代表path)/Yu的u即use使用,工程中只要包括了H文件的文件都会有这个/Yu指令如果选择自动Automatic的话则原来为/Yc的地方就换成了/Yx指令如果选择自动,则每次编译时编译器会看以前有没有生成过PCH文件,有则不现生成否则就再次编译产生PCH文件
注意:
A,实际上,由Appzard项目向导生成的默认的头文件及CPP文件StdAfxh和StdAfxcpp可以是任何名字的原因很简单但如果你要这样做就要记得修改相应的Project->setting下的几个预编译指令(/Yc,/Yu,/Yx,/Fp)的参数
B在任何一个包括了将要预编译的头文件而使用了PCH文件的工程文件的开头,一定必须要是在最开头,你要包含那个指定生成PCH文件的H文件(通过CPP文件包括,默认为StdAfxcpp),如果没包括将产生我最开头产生的错误如果不是在最开头包括将产生让你意想不到的莫名其妙错误,如若不信,盍为试之
C预编译文件PCH生成之很耗时间,而且生成之后它也很占磁盘空间,常在5-6M,注意项目完成之后及时清理无用的PCH文件以节约磁盘空间
D如果丢了或删了PCH文件而以后要再修改工程文件时,可将指定的/Yc的CPP文件(默认为StdAfxcpp)重新编译一次即可再次生成PCH文件,不用傻傻的按F7或Rebuild All
本来想结合你的问题给你整理一下,呵呵 没有时间了,你看了上面的资料还处理不了,继续提问吧。方法/步骤LED电子屏幕需要专门的软件做好字后在上传,这里使用 LedshowTW;2可以新建和打开一个文件,这里做好了一个;3首先是设置屏参,这个需要密码的;4进入后调整参数与自己买的LED屏幕对应,一定要先扫描在保存;5主要两块设置第一个就是时间,时间有多种格式,选好后,默认出现在左上角,可以拉开放大,调整;6第二个就是内容,选字幕,可以对要的字进行精确编辑;7usb下载选中,校时。然后插在屏幕的U口上,自动上传。以下是一个将bat制作成EXE,并去掉DOS窗口界面的方法:
我们可以先在记事本上输入如下内容:
Set ws = CreateObject("WscriptShell")
wsrun "cmd /c qlbat",vbhide
或者CreateObject("WScriptShell")Run "cmd /c qlbat",0
(注:qlbat 为你要执行的批处理的名字。qlbat里最后处最好添加 @ del qlbat和@del ycvbs这两行内容)
保存为ycvbs文件。
然后用RAR文件把ycvbs文件和qlbat文件压缩,在常规项里把“创建自解压压缩文件”和“锁定压缩文件”两项前打勾,然后“高级”——“自解压选项”——“常规”——“解压后运行”输入ycvbs——再选择“模式”——“安静模式”(全部隐藏)——“覆盖方式”(覆盖所有文件)——然后确定,生成EXE可执行文件即可。那么,再运行这个EXE文件,你将把CMD的窗口隐藏了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)