C++ 读别人的程序,制作了下面的头文件,包含在主程序当中,但是我读不懂啊,好多不认识,求大神给解释!
发布网友
发布时间:2022-04-25 08:24
我来回答
共3个回答
热心网友
时间:2023-12-01 00:27
前三行注释,没用
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
就是这个(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)没有定义的话,下面定义一下
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
这一段的意思是如果
_MSC_VER > 1000这个条件满足
就执行#pragma once
#pragma once的作用防止头文件重复包含
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
这一段要用到的是window系统内的函数,所以先声明,后面的几个.h文件是调用的是window系统中的函数
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
这一段类似,是用到C语言中(编译器中)的函数,下面的.h是调用那些函数
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
这一段也是没用的东西,注释
最后就是定义结束了
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
反正你只要看到/* */和// 就是注释,没起任何作用
头文件的作用在编译器中都会有说明,或者百度一下都可以找到,个人建议去编译去中看
热心网友
时间:2023-11-08 23:30
前三行注释,没用
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
就是这个(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)没有定义的话,下面定义一下
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
这一段的意思是如果
_MSC_VER > 1000这个条件满足
就执行#pragma once
#pragma once的作用防止头文件重复包含
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
这一段要用到的是window系统内的函数,所以先声明,后面的几个.h文件是调用的是window系统中的函数
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
这一段类似,是用到C语言中(编译器中)的函数,下面的.h是调用那些函数
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
这一段也是没用的东西,注释
最后就是定义结束了
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
反正你只要看到/* */和// 就是注释,没起任何作用
头文件的作用在编译器中都会有说明,或者百度一下都可以找到,个人建议去编译去中看
热心网友
时间:2023-12-01 00:28
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)/* 如果没定义(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_),则执行下边的宏定义语句*/
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
#if _MSC_VER > 1000 /*如果表达式成立,则执行下边的语句,即#pragma once*/
#pragma once /*让头文件只编译一次,防止头文件重复包含*/
#endif // _MSC_VER > 1000
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
后边的都类似了,一些是包含的.H文件,还有和上边一样的预处理命令追问请问那些包含的.H文件是什么含义呢?
追答#include
拿这个来说,就是在当前文件中有些变量啊,函数啊等等是在xxx.h文件中声明或定义的,如果这里不包含所对应的这个.H文件,编译不能通过,会提示某某变量或者函数没有定义
热心网友
时间:2023-12-01 00:28
diwutian1124 已经基本回答了你的问题,至于你的追问,包含 .H文件的意思(#include) 就是编译器会将 .h文件在 include 出加载进来编译, 相当于在当前文件中定义的一样。.h文件的定义在当前文件中都是可以直接是用的。
热心网友
时间:2023-11-08 23:30
前三行注释,没用
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
就是这个(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)没有定义的话,下面定义一下
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
这一段的意思是如果
_MSC_VER > 1000这个条件满足
就执行#pragma once
#pragma once的作用防止头文件重复包含
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
这一段要用到的是window系统内的函数,所以先声明,后面的几个.h文件是调用的是window系统中的函数
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
这一段类似,是用到C语言中(编译器中)的函数,下面的.h是调用那些函数
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
这一段也是没用的东西,注释
最后就是定义结束了
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
反正你只要看到/* */和// 就是注释,没起任何作用
头文件的作用在编译器中都会有说明,或者百度一下都可以找到,个人建议去编译去中看
热心网友
时间:2023-11-08 23:30
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)/* 如果没定义(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_),则执行下边的宏定义语句*/
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
#if _MSC_VER > 1000 /*如果表达式成立,则执行下边的语句,即#pragma once*/
#pragma once /*让头文件只编译一次,防止头文件重复包含*/
#endif // _MSC_VER > 1000
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
后边的都类似了,一些是包含的.H文件,还有和上边一样的预处理命令追问请问那些包含的.H文件是什么含义呢?
追答#include
拿这个来说,就是在当前文件中有些变量啊,函数啊等等是在xxx.h文件中声明或定义的,如果这里不包含所对应的这个.H文件,编译不能通过,会提示某某变量或者函数没有定义
热心网友
时间:2023-11-08 23:30
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)/* 如果没定义(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_),则执行下边的宏定义语句*/
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
#if _MSC_VER > 1000 /*如果表达式成立,则执行下边的语句,即#pragma once*/
#pragma once /*让头文件只编译一次,防止头文件重复包含*/
#endif // _MSC_VER > 1000
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
后边的都类似了,一些是包含的.H文件,还有和上边一样的预处理命令追问请问那些包含的.H文件是什么含义呢?
追答#include
拿这个来说,就是在当前文件中有些变量啊,函数啊等等是在xxx.h文件中声明或定义的,如果这里不包含所对应的这个.H文件,编译不能通过,会提示某某变量或者函数没有定义
热心网友
时间:2023-11-08 23:31
diwutian1124 已经基本回答了你的问题,至于你的追问,包含 .H文件的意思(#include) 就是编译器会将 .h文件在 include 出加载进来编译, 相当于在当前文件中定义的一样。.h文件的定义在当前文件中都是可以直接是用的。
热心网友
时间:2023-11-08 23:31
diwutian1124 已经基本回答了你的问题,至于你的追问,包含 .H文件的意思(#include) 就是编译器会将 .h文件在 include 出加载进来编译, 相当于在当前文件中定义的一样。.h文件的定义在当前文件中都是可以直接是用的。
热心网友
时间:2023-12-01 00:27
前三行注释,没用
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
就是这个(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)没有定义的话,下面定义一下
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
这一段的意思是如果
_MSC_VER > 1000这个条件满足
就执行#pragma once
#pragma once的作用防止头文件重复包含
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
这一段要用到的是window系统内的函数,所以先声明,后面的几个.h文件是调用的是window系统中的函数
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
这一段类似,是用到C语言中(编译器中)的函数,下面的.h是调用那些函数
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
这一段也是没用的东西,注释
最后就是定义结束了
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
反正你只要看到/* */和// 就是注释,没起任何作用
头文件的作用在编译器中都会有说明,或者百度一下都可以找到,个人建议去编译去中看
热心网友
时间:2023-11-08 23:30
前三行注释,没用
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
就是这个(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)没有定义的话,下面定义一下
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
这一段的意思是如果
_MSC_VER > 1000这个条件满足
就执行#pragma once
#pragma once的作用防止头文件重复包含
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
这一段要用到的是window系统内的函数,所以先声明,后面的几个.h文件是调用的是window系统中的函数
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
这一段类似,是用到C语言中(编译器中)的函数,下面的.h是调用那些函数
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
这一段也是没用的东西,注释
最后就是定义结束了
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
反正你只要看到/* */和// 就是注释,没起任何作用
头文件的作用在编译器中都会有说明,或者百度一下都可以找到,个人建议去编译去中看
热心网友
时间:2023-12-01 00:28
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)/* 如果没定义(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_),则执行下边的宏定义语句*/
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
#if _MSC_VER > 1000 /*如果表达式成立,则执行下边的语句,即#pragma once*/
#pragma once /*让头文件只编译一次,防止头文件重复包含*/
#endif // _MSC_VER > 1000
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
后边的都类似了,一些是包含的.H文件,还有和上边一样的预处理命令追问请问那些包含的.H文件是什么含义呢?
追答#include
拿这个来说,就是在当前文件中有些变量啊,函数啊等等是在xxx.h文件中声明或定义的,如果这里不包含所对应的这个.H文件,编译不能通过,会提示某某变量或者函数没有定义
热心网友
时间:2023-12-01 00:28
diwutian1124 已经基本回答了你的问题,至于你的追问,包含 .H文件的意思(#include) 就是编译器会将 .h文件在 include 出加载进来编译, 相当于在当前文件中定义的一样。.h文件的定义在当前文件中都是可以直接是用的。
热心网友
时间:2023-11-08 23:30
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)/* 如果没定义(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_),则执行下边的宏定义语句*/
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
#if _MSC_VER > 1000 /*如果表达式成立,则执行下边的语句,即#pragma once*/
#pragma once /*让头文件只编译一次,防止头文件重复包含*/
#endif // _MSC_VER > 1000
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
后边的都类似了,一些是包含的.H文件,还有和上边一样的预处理命令追问请问那些包含的.H文件是什么含义呢?
追答#include
拿这个来说,就是在当前文件中有些变量啊,函数啊等等是在xxx.h文件中声明或定义的,如果这里不包含所对应的这个.H文件,编译不能通过,会提示某某变量或者函数没有定义
热心网友
时间:2023-11-08 23:31
diwutian1124 已经基本回答了你的问题,至于你的追问,包含 .H文件的意思(#include) 就是编译器会将 .h文件在 include 出加载进来编译, 相当于在当前文件中定义的一样。.h文件的定义在当前文件中都是可以直接是用的。
热心网友
时间:2023-11-08 23:30
前三行注释,没用
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
就是这个(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)没有定义的话,下面定义一下
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
这一段的意思是如果
_MSC_VER > 1000这个条件满足
就执行#pragma once
#pragma once的作用防止头文件重复包含
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
这一段要用到的是window系统内的函数,所以先声明,后面的几个.h文件是调用的是window系统中的函数
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
这一段类似,是用到C语言中(编译器中)的函数,下面的.h是调用那些函数
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
这一段也是没用的东西,注释
最后就是定义结束了
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
反正你只要看到/* */和// 就是注释,没起任何作用
头文件的作用在编译器中都会有说明,或者百度一下都可以找到,个人建议去编译去中看
热心网友
时间:2023-11-08 23:30
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)/* 如果没定义(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_),则执行下边的宏定义语句*/
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
#if _MSC_VER > 1000 /*如果表达式成立,则执行下边的语句,即#pragma once*/
#pragma once /*让头文件只编译一次,防止头文件重复包含*/
#endif // _MSC_VER > 1000
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
// Local Header Files
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
后边的都类似了,一些是包含的.H文件,还有和上边一样的预处理命令追问请问那些包含的.H文件是什么含义呢?
追答#include
拿这个来说,就是在当前文件中有些变量啊,函数啊等等是在xxx.h文件中声明或定义的,如果这里不包含所对应的这个.H文件,编译不能通过,会提示某某变量或者函数没有定义
热心网友
时间:2023-11-08 23:31
diwutian1124 已经基本回答了你的问题,至于你的追问,包含 .H文件的意思(#include) 就是编译器会将 .h文件在 include 出加载进来编译, 相当于在当前文件中定义的一样。.h文件的定义在当前文件中都是可以直接是用的。