例如项目中有两个窗体Dialog1和Dialog2,
新建头文件Header.h比如说有空函数void abc(){}
Dialog1.cpp中#include "Header.h"
Dialog2.cpp中#include "Header.h"错误提示:
Dialog2.obj : error LNK2005: "void __cdecl abc(void)" (?abc@@YAXXZ) already defined in HeadTestDlg.obj
Debug/HeadTest.exe : fatal error LNK1169: one or more multiply defined symbols found比如说每个类中都可以#include "stdafx.h"
新建头文件Header.h比如说有空函数void abc(){}
Dialog1.cpp中#include "Header.h"
Dialog2.cpp中#include "Header.h"错误提示:
Dialog2.obj : error LNK2005: "void __cdecl abc(void)" (?abc@@YAXXZ) already defined in HeadTestDlg.obj
Debug/HeadTest.exe : fatal error LNK1169: one or more multiply defined symbols found比如说每个类中都可以#include "stdafx.h"
你应该把void abc(){} 定义到Header.h对应的CPP如Header.cpp里面..然后再包含到其他CPP里面
把声明和定义分开,头文件里 Header.h声明void abc();在cpp文件里面定义。
void abc(){}这个不是类里面的成员函数吗?
#pragma once吧
#pragma once
头文件中加入
#pragma once
或
#ifndef _XXXXX_ //一个宏用来标识这个文件
#define _XXXXX_
//你的头文件
#endif