none
如何用vs2005创建一个c++项目 RRS feed

  • 问题

  • 用vs2005创建一个win32 控制台程序后,里面有stdafx.h,*.cpp,stdafx.cpp,都是什么文件,应怎样添加自己的代码??

    2010年3月29日 14:32

答案

  • chinazhangjie说了stdafx.h何stdafx.cpp一般的作用。

    其实stdafx.h是预编译头文件。正因为他是预编译的,所以和普通的头文件有不同之处。Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。

    AppWizard和VisualC++编译程序一起进行工作,如下所示:
     
    1.AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要MFCinclude 文件。且这一文件可以随被选择的选项而变化。
     
    2.AppWizard然后就建立stdafx.cpp。这个文件通常都是一样的。

    3.然后AppWizard就建立起工程文件,这样第一个被编译的文件就是stdafx.cpp。
     
    4当VisualC++编译stdafx.cpp文件时,它将结果保存在一个名为stdafx.pch的文件里。(扩展名pch表示预编译头文件。)

    5.当VisualC++编译随后的每个.cpp文件时,它阅读并使用它刚生成的.pch文件。
    VisualC++不再分析Windowsinclude文件,除非你又编缉了stdafx.cpp或stdafx.h。

    所以通过预编译头文件,其他的编译单元就不需要对一些必备的头文件进行重新编译了。

    具体可以看这片文档http://blog.csdn.net/songkexin/archive/2007/08/19/1750396.aspx


    麻烦把正确答案设为解答。
    2010年3月30日 1:33
    版主
  • 你好 wghost,

    Win32控制台程序都是在_tmain函数中添加你的程序逻辑,如果你要分文件,比如封装一些自己的方法,就先建.h再建.cpp,在_tmain函数所在文件中包含你创建的.h文件就行了。

    如果是MFC程序就复杂一点。要在主界面上为控件绑定变量,然后在你的代码里就可以用这些变量操作控件了。

    Sincerely,
    Kira Qian
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework!
    • 已标记为答案 Nancy Shao 2010年4月5日 9:54
    2010年4月1日 9:09

全部回复

  • 你好:

       举个例子来说吧,在head1.cpp,head2.cpp,head3.cpp中都要用到一些都文件 #include<iostream>,#incoude <string>等等,你的做法可以是在head1.h,head2.h,head3.h中分别包含这些都文件,也可以只建立一个头文件stdhead.h,中包括所有头文件,在用的时候只需#include"stdhead.h".前者后者都没有错,但是有者编译时速度要大于前者的速度。stdafx.h就是这样。

       在《C++ template》一书中曾经提到过类似的问题,建议你去看看那本书。以上只是我个人的一些理解,不敢保证正确!

    2010年3月29日 14:55
  • chinazhangjie说了stdafx.h何stdafx.cpp一般的作用。

    其实stdafx.h是预编译头文件。正因为他是预编译的,所以和普通的头文件有不同之处。Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。

    AppWizard和VisualC++编译程序一起进行工作,如下所示:
     
    1.AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要MFCinclude 文件。且这一文件可以随被选择的选项而变化。
     
    2.AppWizard然后就建立stdafx.cpp。这个文件通常都是一样的。

    3.然后AppWizard就建立起工程文件,这样第一个被编译的文件就是stdafx.cpp。
     
    4当VisualC++编译stdafx.cpp文件时,它将结果保存在一个名为stdafx.pch的文件里。(扩展名pch表示预编译头文件。)

    5.当VisualC++编译随后的每个.cpp文件时,它阅读并使用它刚生成的.pch文件。
    VisualC++不再分析Windowsinclude文件,除非你又编缉了stdafx.cpp或stdafx.h。

    所以通过预编译头文件,其他的编译单元就不需要对一些必备的头文件进行重新编译了。

    具体可以看这片文档http://blog.csdn.net/songkexin/archive/2007/08/19/1750396.aspx


    麻烦把正确答案设为解答。
    2010年3月30日 1:33
    版主
  • 你好 wghost,

    Win32控制台程序都是在_tmain函数中添加你的程序逻辑,如果你要分文件,比如封装一些自己的方法,就先建.h再建.cpp,在_tmain函数所在文件中包含你创建的.h文件就行了。

    如果是MFC程序就复杂一点。要在主界面上为控件绑定变量,然后在你的代码里就可以用这些变量操作控件了。

    Sincerely,
    Kira Qian
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework!
    • 已标记为答案 Nancy Shao 2010年4月5日 9:54
    2010年4月1日 9:09