VC头文件与CPP关系
我写了一个头文件,里面包含了类,和实现方法...在Win32控制台程序上没有问题,为什么在MFC中就有问题了?移植到MFC程序中..把类定义在了H文件中,把实现方法定义在...
我写了一个头文件,里面包含了类,和实现方法...在Win32控制台程序上没有问题,为什么在MFC中就有问题了?
移植到MFC程序中..把类定义在了H文件中,把实现方法定义在了CPP文件中...CPP文件包含了H文件,编译还是有问题,最后在CPP文件中包含了stdafx.h,问题解决了....
问题是,为什么需要将定义和实现分离才行?在MFC程序中,自己实现类的CPP文件中并没有WinMain()啊,程序是怎么找到我定义的类的实现方法的?为什么包含了stdafx.h才能解决问题?
麻烦高手说一下...或者介绍个网站...留下个网页什么的,谢谢了,满意追分... 展开
移植到MFC程序中..把类定义在了H文件中,把实现方法定义在了CPP文件中...CPP文件包含了H文件,编译还是有问题,最后在CPP文件中包含了stdafx.h,问题解决了....
问题是,为什么需要将定义和实现分离才行?在MFC程序中,自己实现类的CPP文件中并没有WinMain()啊,程序是怎么找到我定义的类的实现方法的?为什么包含了stdafx.h才能解决问题?
麻烦高手说一下...或者介绍个网站...留下个网页什么的,谢谢了,满意追分... 展开
6个回答
展开全部
百度百科上就有关于预编译头文件的解释:
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文件中。
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文件中。
展开全部
文件的分离是VC的一种机制 他们故意的 来提高程序可读性 当你的程序很大的时候就会越来越发现他的好处
是没有WinMain因为主函数只有一个 它根据你的文件名扩展名找到文件 再从里面判断语法 来识别你的类 开发工具玩的就是这个
因为stdafx.h中拥有你常用的那些函数啊 还有数据类型 如果你的实现文件里仅仅包含了一个类的头文件 那么它就不能判断你使用的甚至很熟悉的数据类型
是没有WinMain因为主函数只有一个 它根据你的文件名扩展名找到文件 再从里面判断语法 来识别你的类 开发工具玩的就是这个
因为stdafx.h中拥有你常用的那些函数啊 还有数据类型 如果你的实现文件里仅仅包含了一个类的头文件 那么它就不能判断你使用的甚至很熟悉的数据类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
做个记号 以后来看
确实是这样的 C++的.CPP文件在MFC中需要加一个
stdafx.h,好像加了这个MFC就认识它了吧
MFC是消息驱动,所以没有入口函数main()
WinMain()
期待更完美的回答...
确实是这样的 C++的.CPP文件在MFC中需要加一个
stdafx.h,好像加了这个MFC就认识它了吧
MFC是消息驱动,所以没有入口函数main()
WinMain()
期待更完美的回答...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你错了,MFC里面也有WinMain,只是被微软隐藏了。看看侯捷的《MFC深入浅出》就什么都知道了,网上有的下,免费的,搜搜吧,很多的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
stdafx.h不是必须的;你可以改变编译器的默认选项,不用预编译--最终的命令行里应该没有/Yu, /Yc或者/Yp之类的东西。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询