帮助,我正在使用VC ++,运行我的脚本时总是得到LNK2005和LNK1169错误,你能告诉我它为什么会发生以及如何修复它,谢谢! 代码:
在Main.cpp
中#include "stdafx.h
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include "Modifier.h"
using namespace std;
HWND myconsole = GetConsoleWindow();
HDC mydc = GetDC(myconsole);
int main()
{
if (Input.beg("Hello"))
{
cout << "World";
}
cin.ignore();
}
在“Modifier.cpp”
中#include "stdafx.h"
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
struct {
bool beg(string a)
{
string b;
getline(cin, b);
if (b == a)
{
return true;
}
else
{
}
}
} Input;
在“Modifier.h”中
#include "Modifier.cpp"
答案 0 :(得分:0)
您必须更改标头声明:您无意中在包含“Modifier.h”的每个.cpp中声明了一个不同的全局“输入”变量。
建议:
// Modifier.h
#ifndef MODIFER_H
#define MODIFIER_H
struct Input {
bool beg(string a)
{
string b;
getline(cin, b);
if (b == a)
{
return true;
}
else
{
}
}
};
#endif
然后,在Modifier.cpp中:
#include "Modifier.h"
struct Input globalInput;
你应该不在.h中包含.cpp。您应该在源文件中包含标题,反之亦然。
你绝对应该考虑使用“类”而不是“结构”。因为,坦率地说,这就是你的“输入”:只是一种方法,没有状态/没有数据。