如何写自己的、不是从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”又是什么意思呢?
知道其然,想知道其所以然
如果是自己新建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”又是什么意思呢?
知道其然,想知道其所以然
//myfile.h
#if !defined __MYFILE_H_
#define __MYFILE_H_
//头文件内容#endif//myfile.cpp
#include "myfile.h"
//cpp文件内容
后面是判断在DEBUG版本中显示调试信息#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000这个不是很懂,不敢妄言。
#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窗口会提示的。
在class type中选择generic class
然后为新类命名