VC头文件与CPP关系

我写了一个头文件,里面包含了类,和实现方法...在Win32控制台程序上没有问题,为什么在MFC中就有问题了?移植到MFC程序中..把类定义在了H文件中,把实现方法定义在... 我写了一个头文件,里面包含了类,和实现方法...在Win32控制台程序上没有问题,为什么在MFC中就有问题了?
移植到MFC程序中..把类定义在了H文件中,把实现方法定义在了CPP文件中...CPP文件包含了H文件,编译还是有问题,最后在CPP文件中包含了stdafx.h,问题解决了....
问题是,为什么需要将定义和实现分离才行?在MFC程序中,自己实现类的CPP文件中并没有WinMain()啊,程序是怎么找到我定义的类的实现方法的?为什么包含了stdafx.h才能解决问题?

麻烦高手说一下...或者介绍个网站...留下个网页什么的,谢谢了,满意追分...
展开
 我来答
summonerx
2008-10-15 · TA获得超过180个赞
知道答主
回答量:464
采纳率:0%
帮助的人:0
展开全部
百度百科上就有关于预编译头文件的解释:
http://baike.baidu.com/view/1344257.htm
编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,使用projectname.pch编译这条指令之后的所有代码。
因此,所有的MFC实现文件第一条语句都是:#include "stdafx.h"。

追一下你CWinApp的父类,就知道你的程序怎么出来的了。

“为什么需要将定义和实现分离才行?” 不是必须分离的。可以把实现写在.H文件中。
进取的有胜哥
2008-10-15 · TA获得超过203个赞
知道小有建树答主
回答量:563
采纳率:0%
帮助的人:348万
展开全部
文件的分离是VC的一种机制 他们故意的 来提高程序可读性 当你的程序很大的时候就会越来越发现他的好处
是没有WinMain因为主函数只有一个 它根据你的文件名扩展名找到文件 再从里面判断语法 来识别你的类 开发工具玩的就是这个
因为stdafx.h中拥有你常用的那些函数啊 还有数据类型 如果你的实现文件里仅仅包含了一个类的头文件 那么它就不能判断你使用的甚至很熟悉的数据类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
裂丶怆DV735
2008-10-15 · 超过28用户采纳过TA的回答
知道答主
回答量:170
采纳率:0%
帮助的人:66.8万
展开全部
做个记号 以后来看

确实是这样的 C++的.CPP文件在MFC中需要加一个
stdafx.h,好像加了这个MFC就认识它了吧

MFC是消息驱动,所以没有入口函数main()
WinMain()

期待更完美的回答...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JimiXu
2008-10-20 · TA获得超过410个赞
知道小有建树答主
回答量:1010
采纳率:0%
帮助的人:0
展开全部
你错了,MFC里面也有WinMain,只是被微软隐藏了。看看侯捷的《MFC深入浅出》就什么都知道了,网上有的下,免费的,搜搜吧,很多的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
anshun93
2008-10-18 · 超过31用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:0
展开全部
stdafx.h不是必须的;你可以改变编译器的默认选项,不用预编译--最终的命令行里应该没有/Yu, /Yc或者/Yp之类的东西。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
medky
2008-10-14 · TA获得超过413个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:302万
展开全部
我也不太懂,介绍一个网站给你
http://community.csdn.net/
多好的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式