如何写自己的、不是从mfc派生的类呢?用“建立类向导”和“新建类”好象都是从mfgc派生的

kilnut 2003-08-18 08:08:03
如何写自己的、不是从mfc派生的类呢?用“建立类向导”和“新建类”好象都是从mfgc派生的。
如果是自己新建header文件和Cpp文件的话,那么和使用“建立类向导”建立的header文件比较,用“建立类向导”中
有:

#if !defined(AFX_PROJECT_H__51C63925_20DB_45FC_B4CE_E20D4401F616__INCLUDED_)
#define AFX_PROJECT_H__51C63925_20DB_45FC_B4CE_E20D4401F616__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
”和结尾有:
“#endif // !defined(AFX_PROJECT_H__51C63925_20DB_45FC_B4CE_E20D4401F616__INCLUDED_)”
是什么意思呢,自己写类的话要怎么写?
类似的在cpp文件中使用“建立类向导”的在include后有
“#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif”又是什么意思呢?
知道其然,想知道其所以然
...全文
278 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wanix 2003-08-22
  • 打赏
  • 举报
回复
用insert菜单中的new class
在class type中选择generic class
然后为新类命名
bmon_xyz 2003-08-21
  • 打赏
  • 举报
回复
#if !defined(AFX_PROJECT_H__51C63925_20DB_45FC_B4CE_E20D4401F616__INCLUDED_)
#define AFX_PROJECT_H__51C63925_20DB_45FC_B4CE_E20D4401F616__INCLUDED_
以上是防止头文件被重复编译的,是比较老式的用法,以前写的程序头文件都是这样的。

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
这句话也是防止头文件被重复编译的,是VC5以后的新用法。#pragma once就是只编译一次的意思,_MSC_VER是VC的版本,1000表示是VC 5.0,意思是VC 5.0以后的版本只写这句话就可以了。这时再用#ifdef只是为了兼容以前的VC版本。在.NET里头文件就只有#pragma once一句话了。

“#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif”
这是VC帮你检查内存泄漏的,如果在DEBUG版本下有内存泄漏DEBUG窗口会提示的。
kilnut 2003-08-21
  • 打赏
  • 举报
回复
呵呵,原来用英文版的,只是假期重装了系统了,没找到英文版的,我想这个问题不大
sunyi366 2003-08-19
  • 打赏
  • 举报
回复
兄弟如果你还用中文版的 vc6.0,那没有几个公司敢用你了。(不是开玩笑)
wplian 2003-08-19
  • 打赏
  • 举报
回复
前面只是一些防止重复编译的预处理代码
后面是判断在DEBUG版本中显示调试信息

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

这个不是很懂,不敢妄言。
goodsong 2003-08-19
  • 打赏
  • 举报
回复
自己写
//myfile.h
#if !defined __MYFILE_H_
#define __MYFILE_H_
//头文件内容

#endif

//myfile.cpp
#include "myfile.h"
//cpp文件内容

kilnut 2003-08-19
  • 打赏
  • 举报
回复
我用的是中文版的 vc6.0没看到你们的设置阿?
shangxiaodong 2003-08-19
  • 打赏
  • 举报
回复
就是楼上的意见勒!
vcppman 2003-08-18
  • 打赏
  • 举报
回复
insert class的时候选 generic class 不要选 MFC class
kilnut 2003-08-18
  • 打赏
  • 举报
回复
我手工添加的话,上面那些“”内的内容就没有啊。我想知道那些语句什么意思,不加可以吗?
cadinfo 2003-08-18
  • 打赏
  • 举报
回复
generic class 可以

不过,你完全可以手工建立class啊!

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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