关于头文件的困惑

spywinter 2003-06-06 11:12:05
问题如下:
1。当在一个视图类(CxxView)类中调用对话框类(Cxxdialog)的时候,书上一般会讲,要在CxxView.cpp文件的开头加入#include"xxdialog.h"语句,而且会告诉,要加在#include“xxdoc.h”后,但按理讲,头文件的包含语句可以打乱的。但我若把#include "xxdialog.h"语句,加在最开始,而不是放在#include"xxdoc.h"后,则会出现错误。这个问题我一直没想清楚。
2。在aaplication wizard生成的框架中,一般,头文件的包含语句都是写在.cpp文件中的。但,我似乎认为,写在.h文件中,还是.cpp文件中应该都是一样的吧?但在用到odbc的时候,我们都要用到#include"afxdb.h",我在用class wizard生成的cxxrecordset的头文件里,加入了#include“afxdb.h”可以运行,但恰恰若把这句话放在cxxrecordset.cpp文件中,反而不行了。没搞懂,请大家指点!
...全文
16 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqxucom 2003-06-07
  • 打赏
  • 举报
回复
Up
blackblue 2003-06-07
  • 打赏
  • 举报
回复
请问blackblue,书上一般习惯将#include<afxdb.h>加到afxwin.h里面,其他的都不变,这样程序可以是运行的。

《《《《不是加到afxwin.h里,而是加到stdafx.h里

如果按你的说法,哪个文件里用了recordset,哪个文件就要包含#include<afxdb.h>,那书上只在afxwin.h里加入了这句包含语言。而且在cxxrecordset.h里也没有包含afxwin.h,只在cxxrecordset。cpp里有这句话,那程序为什么可以运行呢?因为书上也没有在cxxrecordset.h里加入#include<afxdb.h>啊,我没搞得太懂。

《《《《《书上的头文件里不加是因为已经加在了stdafx.h文件中,这个预编译文件包含了所以需要用到的东西,相当于预先已经声明了要用到的类。你同样可以把#include <afxdb.h>加在stdafx.h中,这样就不需要在每个recordset的头文件中增加#include <afxdb.h>
spywinter 2003-06-06
  • 打赏
  • 举报
回复
请问 Mackz。在哪里可以找到关于头文件的顺序的资料?我以前一直以为几个包含文件,应该可以打乱顺序的。你可不可以大致讲一下这两段包含文件有什么不同?假设我的工程名叫xx。
1.
#include<afxwin.h>
#include<xx.h> //这是工程的头文件

#include<xxdoc.h> //包含了文档类的头文件
#include<xxview.h> //视图类的头文件
#include<afxdb.h>

2.
#include<afxdb.h>
#include<afxwin.h>
#include<xx.h> //这是工程的头文件

#include<xxdoc.h> //包含了文档类的头文件
#include<xxview.h> //视图类的头文件

请指教,谢谢!
spywinter 2003-06-06
  • 打赏
  • 举报
回复
请问blackblue,书上一般习惯将#include<afxdb.h>加到afxwin.h里面,其他的都不变,这样程序可以是运行的。如果按你的说法,哪个文件里用了recordset,哪个文件就要包含#include<afxdb.h>,那书上只在afxwin.h里加入了这句包含语言。而且在cxxrecordset.h里也没有包含afxwin.h,只在cxxrecordset。cpp里有这句话,那程序为什么可以运行呢?因为书上也没有在cxxrecordset.h里加入#include<afxdb.h>啊,我没搞得太懂。
blackblue 2003-06-06
  • 打赏
  • 举报
回复
2、因为你的Recordset是从CRecordset派生来得,也就是说在你的头文件中已经用到了CRecordset的定义,所以必须在头文件里包含afxdb.h
菜牛 2003-06-06
  • 打赏
  • 举报
回复
谁告诉你“头文件的包含语句可以打乱的”?哪本书上说的?哪位专家说的?

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧