下面的问题怎样解决:我建了两个类CSaron和CWriteIC,还建了个头文件 userfun.h。在userfun头文件中建了一个函数:OpenCom(int)。我在类CSaron中引用了头文件 userfun.h。并且调用了函数OpenCom(int)。编译时没有问题。当我在类CWriteIC中引用头文件userfun.h并且调用了函数OpenCom(int)。编译时出现下列错误:
WriteIC.obj : error LNK2005: "bool __cdecl OpenCom(int)" (?OpenCom@@YA_NH@Z) already defined in SaronDlg.obj
当我把在类CWriteIC中引用头文件userfun去掉,编译时提示:函数OpenCom(int)没有声明。请问我怎样才能在类CWriteIC中调用头文件userfun.h中的函数OpenCom(int)。
谢谢各位。很急!!!!!!!!
10 个解决方案
#1
#pragma once
#2
宏
在头文件中添加:
#ifndef ×××_FILE
#define ×××_FILE
头文件内容
#endif//×××_FILE
在头文件中添加:
#ifndef ×××_FILE
#define ×××_FILE
头文件内容
#endif//×××_FILE
#3
微软是怎么做的
#if !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#define AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_
定义
#endif // !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#if !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#define AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_
定义
#endif // !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#4
微软是怎么做的
#if !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#define AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_
定义
#endif // !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#if !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#define AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_
定义
#endif // !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#5
假设你有一个头文件 myfile.h
#ifndef MYFILE //如果编译过该头文件就在不再编译该头文件,如果没有编译过该头
//文件就继续往下执行
#define MYFILE // 注意确保MYFILE 在工程中的唯一性
...........
#endif
看看vc自动生成的类的头文件就明白了
#ifndef MYFILE //如果编译过该头文件就在不再编译该头文件,如果没有编译过该头
//文件就继续往下执行
#define MYFILE // 注意确保MYFILE 在工程中的唯一性
...........
#endif
看看vc自动生成的类的头文件就明白了
#6
#ifndef headerfile_h
#define headerfile_h
int iglobal;
......
#endif
或用这个比较简单的方法
#pragma once
#define headerfile_h
int iglobal;
......
#endif
或用这个比较简单的方法
#pragma once
#7
楼上都说了~~~
#8
#pragma once
#9
clean
rebuild all
rebuild all
#10
来晚了
#1
#pragma once
#2
宏
在头文件中添加:
#ifndef ×××_FILE
#define ×××_FILE
头文件内容
#endif//×××_FILE
在头文件中添加:
#ifndef ×××_FILE
#define ×××_FILE
头文件内容
#endif//×××_FILE
#3
微软是怎么做的
#if !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#define AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_
定义
#endif // !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#if !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#define AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_
定义
#endif // !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#4
微软是怎么做的
#if !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#define AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_
定义
#endif // !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#if !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#define AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_
定义
#endif // !defined(AFX_DRAWVIEW_H__D1B0B7BC_F996_4287_BF07_74EB81AFAEC6__INCLUDED_)
#5
假设你有一个头文件 myfile.h
#ifndef MYFILE //如果编译过该头文件就在不再编译该头文件,如果没有编译过该头
//文件就继续往下执行
#define MYFILE // 注意确保MYFILE 在工程中的唯一性
...........
#endif
看看vc自动生成的类的头文件就明白了
#ifndef MYFILE //如果编译过该头文件就在不再编译该头文件,如果没有编译过该头
//文件就继续往下执行
#define MYFILE // 注意确保MYFILE 在工程中的唯一性
...........
#endif
看看vc自动生成的类的头文件就明白了
#6
#ifndef headerfile_h
#define headerfile_h
int iglobal;
......
#endif
或用这个比较简单的方法
#pragma once
#define headerfile_h
int iglobal;
......
#endif
或用这个比较简单的方法
#pragma once
#7
楼上都说了~~~
#8
#pragma once
#9
clean
rebuild all
rebuild all
#10
来晚了