我正在开发一个 winapi 图形包装器,我遇到了一个 c2374 错误“重新定义;多重初始化”。我制作了一个非常简化的程序来说明我的问题,我希望有人可以帮助我解决这个问题。注意:此处的代码仅用于说明发布,这就是为什么您看不到包含级联的原因。
主文件
#include <iostream>
#include "functions.h"
#include "constants.h"
void main()
{
}
///////////////////////////////////////// ///////////////////////
函数.h
#include "constants.h"
函数.cpp
#include "functions.h"
///////////////////////////////////////// ///////////////////////
常量.h
double pie = 3.14;
常量.cpp
#include "constants.h"
///////////////////////////////////////// ///////////////////////
错误是;错误 C2374:“派”:重新定义;多重初始化
正如您在此示例中看到的那样,除了能够从不同位置引用常量之外,我并没有尝试编辑饼图或做任何事情。在我的图形包装器中,我试图获得 HRESULT 结果;定义这样当我初始化directx或sprites等时我可以简单地测试失败。小请求:如果你对此有答案,请也指点我一本好的教科书来学习多文件编程或其他东西,我真的在教自己的一切,负担不起的课。谢谢你。
进步:
头文件现在包含一个新的代码块
#ifndef //stuff//
#def //stuff//
//code
#endif
每个都有自己独特的标签。对 LNK2005 的错误更改:“double pie”(?pie@@3NA) 已在 constants.obj 中定义。
注意:虽然有人建议使用 const 来解决这个问题,但我想避免这种情况,因为它代表的更复杂的程序需要变量是可编辑的。